User interface methods and systems for providing force-sensitive input

ABSTRACT

Methods and systems implement touch sensors or force sensitive materials disposed on the case of a computing device in order to enable user input gestures to be performed on portions of the device case. The force sensitive elements may generate an electrical signal in response to a gesture, such as a tap, squeeze, swipe or twist. The properties of the generated electrical signal may be compared to various reference templates to recognize particular input gestures. The force sensitive elements may operate in conjunction with more traditional input methods, such as touch-screen display and electromechanical buttons. By enabling user input gestures on the case of computing devices, the various aspects permit one hand operation of the devices including intuitive gestures that do not require the users focused attention to accomplish. Thus the various aspects may enable users to utilize their computing devices in situations not suitable to conventional user input technologies.

FIELD OF THE INVENTION

The present invention relates generally to mobile device user interfacesystems and more particularly to user interface systems for acceptinginput on a mobile device.

BACKGROUND

Mobile computing devices utilize a wide variety of input methods.Physical buttons have been supplemented with input devices such asscrolling wheels, trackballs, and touch sensitive devices such as touchpads and touch screen displays. While such improvements to the userinterface have improved the utility of many mobile devices, most userinterfaces require the user's focused attention to see and item beingpressed or a response to the user input on a display screen. Thisrequirement can distract users when they are using their mobile devicewhile performing operations that require their focused attention, suchas driving a car. Also, many mobile device user interface configurationsrequire two hands to operate; one hand to hold device so that thefingers of the other hand can interact with the interface, such astouching icons on a touchscreen display. Consequently, many user inputtechnologies preclude use of a mobile device when the user has only onefree hand, such as while holding an umbrella.

SUMMARY

The various aspects include a method for capturing user input on acomputing device, including receiving an electrical signal from a forcesensitive sensor positioned on a case of the computing device, comparingthe received electrical signal to a reference signal template,determining whether the received electrical signal matches the referencesignal template, identifying a functionality associated with a matchedreference signal template, and implementing the identified functionalityon the computing device. In a further aspect implementing the identifiedfunctionality on the computing device may include generating a userinput event notification, and forwarding the user input eventnotification to an application executing on the computing device. In afurther aspect, the force sensitive sensor comprises a piezoelectricsensor. In an aspect, the method may further include filtering thereceived electrical signal for electromagnetic interference, convertingthe received electrical signal from analog to digital format,normalizing the received electrical signal in at least one of frequencyand amplitude, and identifying a portion of the received electricalsignal to compare with the reference signal template. In an aspect, themethod may further include converting the received electrical signalfrom the force sensitive sensor into frequency domain data, in whichcomparing the received electrical signal with a reference signaltemplate includes comparing the sensor signal frequency domain data to areference frequency domain template. In a further aspect, comparing thereceived electrical signal with a reference signal template, anddetermining whether the received electrical signal matches the referencesignal template may include calculating cross-correlation values of aportion of the received electrical signal and each of a plurality ofreference templates, determining a best correlation value, anddetermining whether the correlation value is above a threshold value. Ina further aspect, comparing the received electrical signal with areference signal template, and determining whether the receivedelectrical signal matches the reference signal template may includeconverting at least a portion of the received electrical signal into afrequency domain signal portion, calculating cross-correlation values ofthe frequency domain portion and each of a plurality of referencetemplates, determining a best correlation value, and determining whetherthe correlation value is above a threshold value. In a further aspect,comparing the received electrical signal with a reference signaltemplate, and determining whether the received electrical signal matchesthe reference signal template includes performing a hidden Markov modeltest on the received electrical signal from the force sensitive sensor.In a further aspect, comparing the received electrical signal with areference signal template, and determining whether the receivedelectrical signal matches the reference signal template includescalculating one or more signal vectors characterizing the receivedelectrical signal from the force sensitive sensor, accessing a referencevector characterizing a reference signal, calculating a cosine valuebased on the received signal vector and accessed reference vector, anddetermining whether the calculated cosine value is less than a thresholdvalue. In an aspect, the method may further include receiving a sensorinput from another sensor, wherein identifying a functionalityassociated with a matched reference signal template comprisesidentifying a functionality associated both with the matched referencesignal template and the sensor input received from the other sensor. Inan aspect, the method may further include detecting a change intemperature based on the received electrical signal from the forcesensitive sensor. In an aspect, the method may further include receivinga user identified functionality to be associated with the user inputgesture, prompting the user to perform a user input gesture, receivingelectrical signals from the force sensitive sensor, processing thereceived electrical signals from the force sensitive sensor in order togenerate a reference signal template, and storing the reference signaltemplate in memory in conjunction with the received user identifiedfunctionality. In a further aspect, the computing device may be a mobiledevice or a tablet computing device. In an aspect, the method mayfurther include determining when a signal from a force sensor ceases,wherein implementing the identified functionality on the computingdevice is initiated when the signal from the force sensor ceases. In anaspect, the method may further include determining when a low batterypower condition exists, wherein implementing the identifiedfunctionality on the computing device comprises initiating a telephonecall in a minimum power state.

In a further aspect a computing device may include a case, a processorpositioned within the case, a memory coupled to the processor, thememory storing a reference signal template, and a force sensitive sensorpositioned on the case and coupled to the processor, in which theprocessor is configured with processor-executable instructions toperform operations including receiving an electrical signal from theforce sensitive sensor, comparing the received electrical signal to thereference signal template, determining whether the received electricalsignal matches the reference signal template, identifying afunctionality associated with a matched reference signal template, andimplementing the identified functionality on the computing device. In anaspect, the computing device processor may be configured withprocessor-executable instructions such that implementing the identifiedfunctionality on the computing device includes generating a user inputevent notification, and forwarding the user input event notification toan application executing on the processor. In an aspect, the forcesensitive sensor is a piezoelectric sensor. In an aspect, the computingdevice processor may be configured with processor-executableinstructions to perform operations further including filtering thereceived electrical signal for electromagnetic interference, convertingthe received electrical signal from analog to digital format,normalizing the received electrical signal in at least one of frequencyand amplitude, and identifying a portion of the received electricalsignal to compare with the reference signal template. In an aspect thecomputing device processor may be configured with processor-executableinstruction to perform operations further including converting thereceived electrical signal from the force sensitive sensor intofrequency domain data, in which the reference signal template is afrequency domain template, and in which the computing device processoris configured with processor-executable instructions such that comparingthe received electrical signal with the reference signal templateincludes comparing the sensor signal frequency domain data to thereference frequency domain template. In an aspect, the memory may havestored on it a plurality of reference templates, and the computingdevice processor may be configured with processor-executableinstructions such that comparing the received electrical signal with thereference signal template, and determining whether the receivedelectrical signal matches the reference signal template includescalculating cross-correlation values of a portion of the receivedelectrical signal and each of the plurality of reference templates,determining a best correlation value, and determining whether thecorrelation value is above a threshold value. In an aspect, the memorymay have stored on it a plurality of reference templates, and thecomputing device processor may be configured with processor-executableinstructions such that comparing the received electrical signal with thereference signal template, and determining whether the receivedelectrical signal matches the reference signal template includesconverting at least a portion of the received electrical signal into afrequency domain signal portion, calculating cross-correlation values ofthe frequency domain portion and each of a plurality of referencetemplates, determining a best correlation value, and determining whetherthe correlation value is above a threshold value. In an aspect, thecomputing device processor may be configured with processor-executableinstructions such that comparing the received electrical signal with thereference signal template, and determining whether the receivedelectrical signal matches the reference signal template includesperforming a hidden Markov model test on the received electrical signalfrom the force sensitive sensor. In an aspect, the computing deviceprocessor may be configured with processor-executable instructions suchthat comparing the received electrical signal with the reference signaltemplate, and determining whether the received electrical signal matchesthe reference signal template includes calculating one or more signalvectors characterizing the received electrical signal from the forcesensitive sensor, accessing the reference vector stored in the memory,calculating a cosine value based on the received signal vector and theaccessed reference vector, and determining whether the calculated cosinevalue is less than a threshold value. In an aspect, the computing devicemay further include another sensor coupled to the processor, in whichthe computing device processor is configured with processor-executableinstructions to perform operations further including receiving a sensorinput from the other sensor, in which identifying a functionalityassociated with a matched reference signal template includes identifyinga functionality associated both with the matched reference signaltemplate and the sensor input received from the other sensor. In anaspect, the computing device processor may be configured withprocessor-executable instructions to perform operations furtherincluding detecting a change in temperature based on the receivedelectrical signal from the force sensitive sensor. In an aspect, thecomputing device processor may be configured with processor-executableinstructions to perform operations further including receiving a useridentified functionality to be associated with the user input gesture,prompting the user to perform a user input gesture, receiving electricalsignals from the force sensitive sensor, processing the receivedelectrical signals from the force sensitive sensor in order to generatea reference signal template, and storing the generated reference signaltemplate in the memory in conjunction with the received user identifiedfunctionality. In an aspect, the computing device may be a mobile deviceor a tablet computing device. In an aspect, the computing deviceprocessor may be configured with processor-executable instructions toperform operations further including determining when a signal from aforce sensor ceases, in which implementing the identified functionalityon the computing device is initiated when the signal from the forcesensor ceases. In an aspect, the computing device processor may beconfigured with processor-executable instructions to perform operationsfurther including determining when a low battery power condition exists,in which implementing the identified functionality on the computingdevice comprises initiating a telephone call in a minimum power state.In a further aspect, the computing device may be configured so the forcesensitive sensor is positioned on an external or an internal surface ofthe case. In a further aspect, the computing device may include aplurality of force sensitive sensors positioned on the case and coupledto the processor, which may be positioned on a back surface of the caseand/or one or all sides of the computing device case.

In a further aspect a computing device, which may be a mobile device anda tablet computing device, may include means for accomplishing thefunction of the method aspects.

In a further aspect, a processor-readable storage medium may have storedthereon processor-executable instructions configured to cause aprocessor of a computing device to accomplish the operations of themethod aspects.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated herein and constitutepart of this specification, illustrate exemplary aspects of theinvention. Together with the general description given above and thedetailed description given below, the drawings serve to explain featuresof the invention.

FIG. 1 is a front view and a side view of a mobile device including anaspect.

FIGS. 2A and 2B illustrate a force sensor suitable for use with thevarious aspects; FIG. 2A being an elevation view, and FIG. 2B being across sectional view.

FIG. 3 is a graph of electrical signals generated by two force sensitivemembranes implemented on an aspect prototype.

FIG. 4 is a frequency-domain plot of the two electrical signalsillustrated in FIG. 3.

FIG. 5 is a process flow diagram of an aspect method for implementinggesture functionality on mobile devices equipped with force sensitivemembranes.

FIG. 6A is a process flow diagram of another aspect method forimplementing gesture functionality on mobile devices equipped with forcesensitive membranes.

FIG. 6B is a process flow diagram of another aspect method forimplementing gesture functionality on mobile devices equipped with forcesensitive membranes.

FIG. 7 is a process flow diagram another aspect method for implementinggesture functionality on mobile devices equipped with force sensitivemembranes.

FIG. 8 is a process flow diagram of an aspect method for implementinggesture functionality on mobile devices equipped with force sensitivemembranes using vector angle correlation algorithms.

FIG. 9 is a process flow diagram of an aspect method for generatingreference signal templates by training user input gestures.

FIGS. 10A and 10B are component block diagrams of alternativeconfigurations for pressure sensitive membranes suitable for use withthe various aspects.

FIG. 11 is an illustration of a one-handed touch gesture suitable foruse with the various aspects.

FIG. 12 is an illustration of another one-handed touch gesture suitablefor use with the various aspects.

FIG. 13 is an illustration of another one-handed touch gesture suitablefor use with the various aspects.

FIG. 14A is an illustration of pressure sensitive membranes implementedon a case of a mobile device suitable for use with the various aspects.

FIG. 14B is an illustration of a touch gesture suitable for use with amobile device similar to that illustrated in FIG. 14A.

FIG. 15A is an illustration of positioning pressure sensitive membranesalong bending axes of a mobile device according to an aspect.

FIGS. 15B-15F are illustrations of touch gestures suitable for use witha mobile device similar to that illustrated in FIG. 15A.

FIGS. 16A and 16B are system block diagrams of signal processingcircuitry suitable for use with the various aspects

FIG. 17 is a component block diagram of an example mobile devicesuitable for use with the various aspects.

FIG. 18 is a component block diagram of an example tablet computingdevice suitable for use with the various aspects.

DETAILED DESCRIPTION

The various aspects will be described in detail with reference to theaccompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.References made to particular examples and implementations are forillustrative purposes and are not intended to limit the scope of theinvention or the claims.

The word “exemplary” is used herein to mean “serving as an example,instance, or illustration.” Any implementation described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other implementations.

As used herein, the terms “mobile device,” “computing device” and“portable computing device” refer to any one or all of cellulartelephones, personal data assistants (PDAs), tablet computers (alsoknown as slate computers), palm-top computers, notebook computers,personal computers, wireless electronic mail receivers and cellulartelephone receivers (e.g., the Blackberry® and Treo® devices),multimedia Internet enabled cellular telephones (e.g., the BlackberryStorm®), and similar electronic devices that include a programmableprocessor, memory, and force sensitive membranes were similarly touchsensors as described herein.

Mobile devices are increasing indispensable. From telephone calls totexting to sending/receiving e-mail to surfing the Internet, mobiledevice users are spending more and more time interfacing with theirdevices. Mobile devices typically employ a variety of user interfacetechnologies, such as buttons, scroll wheels, trackballs and touchsensitive surfaces. Many mobile phones today include touch screendisplays that recognize user input gestures such as tapping, draggingand swiping. Mobile devices are also being implemented in new formsreplacing traditional media, such as electronic book devices, electronicphoto frames, and slate-like or tablet computers which have limited realestate for user interface devices.

While most mobile device user interfaces are easy to use, they typicallyrequire the user's focused attention to see the item being pressed orthe response of the user input on a display screen. This need to payattention to the mobile device user interface may distract users whenthey are using their mobile device while performing operations thatrequire their full attention, such as driving a car. Also, many mobiledevice user interfaces require two hands to operate; one hand to holddevice so that the fingers of the other hand can interact with theinterface, such as touching icons on a touchscreen display.Consequently, many mobile devices have reduced utility when only onehand is available, such as while holding an umbrella.

New forms of mobile devices, such as tablet computers and electronicbook display devices, are being implemented with large displays, such as12-inch and larger LCD displays, for which the center of gravity is toofar from the edges to be comfortably held in a single hand. Such deviceswill be more comfortably held with two hands. However, thisconfiguration makes it difficult for users to interface with aconventional keyboard without having to put the device down on a tableor lap. Such devices would thus benefit from a user interface that canbe manipulated while being held with both hands.

Mobile device user interfaces typically comprise an input device (e.g.,a button) connected to a central processing unit via one or more signalprocessing circuits. The mobile device will typically have an operatingsystem implemented on the central processing unit that has thecapability to receive and interpret input signals from input devices.The operating system may also convert the received signal to a formsuitable for use with the various applications running on the mobiledevice. For example, when a user presses a button on the mobile device,the operating system may receive and electrical signal initiated by thebutton, and in response, send a suitable interrupt to an executingapplication. The interrupt may be recognized by the application as anotification of a button press or touch to a displayed icon on atouchscreen, and cause the application to execute a predefined functioncoded specifically to respond to the indicated button press ortouchscreen touch event. Such a function may be referred to as an eventhandler or an “onclick” function. Some mobile devices may include awindow manager as part of the operating system. The window manager maybe responsible for receiving signals from input devices and routing thesignal to the proper application.

The various aspects implement sensors which generate a signal inresponse to an applied force or pressure or to strain (e.g., bending orstretching) that may be implemented on the case of a mobile device inorder to enable user input gestures to be performed on portions of themobile device case. Such sensors may be made of a variety of materialsand configurations, and may generate signals in response to appliedforce, such as pressure, strain (e.g., bending or stretching), andacoustic waves (e.g., sound and vibration). Such sensors may be able tomeasure or sense static pressure as well as strain, and static as wellas dynamic forces and strain. For ease of reference, such sensors aregenerally referred to herein as force sensitive sensors or elements;however, such reference to “force sensors” is not intended to limit thescope of the claims to so as to exclude any of pressure, strain andacoustic waves.

The force sensitive elements may generate an electrical signal inresponse to a gesture, such as a squeeze or a swipe. The properties ofthe generated electrical signal may be compared to various referencesignal templates that may be stored in a reference signal database torecognize particular input gestures. The force sensitive elements mayoperate in conjunction with more traditional input methods, such astouch-screen display and electromechanical buttons. By enabling userinput gestures on the case of mobile devices, the various aspects permitone hand operation of the devices including intuitive gestures that donot require the users focused attention to accomplish. Thus the variousaspects may enable users to utilize their mobile devices in situationsnot suitable to conventional user input technologies.

An example of a mobile device with force sensitive surfaces isillustrated in FIG. 1, which shows a front and side view of a mobiledevice. The mobile device 100 may include a plurality of input buttons112 and and/or a touchscreen display 108. The mobile device 100 includesa case 104 which may be a metal alloy, a plastic, or any substancetypically used for mobile device housings. In the various aspects, themobile device 100 also includes one or more force sensing materialsimplemented on or within the case material in the form of forcesensitive input strips 115 a, 115 b. In the exemplary aspect shown inFIG. 1, the force sensitive input strips 115 a, 115 b are positioned oneach side of the device. So positioned, the force sensitive input strips115 a, 115 b can measure the force asserted by a user's fingers holdingthe mobile device in the customary manner.

Since the force sensitive input strips 115 a, 115 b are positioned onthe portions of the mobile device that are touched or grasped by a userholding the device, the technologies used in conventional touch surfaceand touchscreen user input devices are not appropriate in the variousaspects. Such user input technologies are configured to sense a lighttouch and have limited ability to distinguish multiple simultaneoustouches. In the various aspects, the force sensitive input strips 115 a,115 b are intended to be touched and grasped continuously while a mobiledevice is in use. Therefore, the various aspects employ sensor materialsand discrimination techniques which enable user inputs to be recognizedeven though the material is being touched continuously.

The force sensitive input strips 115 a and 115 b may be made of anymaterial capable of generating a measurable electrical signal inresponse to applied force or pressure, or induced strain (e.g., bendingfrom the application of force) or acoustic wave (which is a form ofstrain). The force sensitive input strips 115 a and 115 b may be placedon the exterior of the mobile device so that the sensors can generate asignal in response to user actions such as from a user tapping,squeezing, and/or swiping a finger on the material itself.Alternatively, the force sensitive input strips 115 a, 115 b may beadhered to the inside of the mobile device case and generate a signal inresponse to vibrations and distortions of the case caused by a userpressing, tapping, twisting or swiping the outside surface of the case.The force sensitive strips may also be any material capable ofgenerating an electrical signal in response to transducing acousticwaves, strain, or vibrations in the material.

An example of a suitable sensor is based upon piezoelectric materials,which are well known materials that generate electric current inresponse to strain, such as may be caused by impacts or applied forces.For example, the force sensitive input strips may be formed from one ormore strips of piezoelectric material 210 (“piezo strip”), such as shownin FIG. 2A. An example piezo strip 210 that is commercially available ismarketed as Piezo Film, which is a product offered for sale byMeasurement Specialties, Inc. of Hampton, Va. The Piezo Film product isa piezoelectric film which will produce a voltage in response to strain(i.e., stretching, bending or compression). Another force sensingmaterial that may be used in an aspect is a printable resistive materialthat may be printed and formed into a variety of shapes in thin filmsand membranes that can be formed around shapes. In general, bending of apiezoelectric material film will produce a voltage. Also, if thepiezoelectric material film is adhered to a surface, the film willproduce a voltage as vibrations move across the surface, which outputs avoltage waveform.

FIG. 2A shows a force sensitive input strip 115 attached to a side panelof the mobile device case 104. The force sensitive input strips 115 mayinclude a piezo strip 210. The piezo strip 210 is configured to generatea voltage signal in response to applied forces which cause some changeof shape or strain in the material. The generated voltage may becollected by electrical contacts 214 a, 214 b which are in electricalcontact with the piezoelectric material and with electrical leads 216 a,216 b which can direct generated signals to signal processing circuitswithin the mobile device case 104.

FIG. 2B shows a cross-section Y-Y of an aspect configuration of a forcesensitive input strips 115 attached to the case 104 of a mobile device.The piezo strip 210 may be covered by a flexible membrane 211 whichprotects the piezoelectric material while allowing the piezo strip 210to receive forces applied via a finger or thumb applied to the surface.The flexible membrane 211 may also protect the strip from shortcircuiting or receiving an extraneous external voltage. The flexiblemembrane 211 may be made from plastic or rubber-type materials which canprovide flexible protection for the underlying piezoelectric material aswell electrical insulation.

The piezo strip 210 may be mounted on the case 104 of a mobile device ina variety of configurations. For example, the piezo strip 210 may beapplied directly to the exterior surface of the case 104, such as bymeans of an adhesive. In such a configuration, the piezo strip 210 maybe slightly raised above the rest of the exterior surface of the case104. In another configuration illustrated in FIG. 2B, the piezo strip210 may be applied to a depression 144 formed or milled into the casesurface that is configured so the flexible membrane 211 is approximatelyflush with rest of the mobile device case 104. In an aspect, theinterior portion of the piezo strip 210 may be surrounded or framed byan insulating container 212 of encapsulating material to protect thestrip from exposure to air and moisture and protect against shortcircuiting or receiving an extraneous voltage on the backside. In anaspect, the container 212 may be a rigid to provide support for thepiezo strip 210, such as to prevent bending of the strip. The electricalcontacts 214 a, 214 b may be contained within the insulating container212 and directly contact the piezo strip 210.

While FIG. 2B shows the piezo strip 210 mounted on the exterior surfaceof the case 104, the sensor may alternatively be attached to an interiorsurface of the case 104. Positioned on an interior surface, the piezostrip 210 will generate voltage signals in response to vibrationspassing through along the case wall, such as taps on the exterior of thecase, and bending of the case wall, such as may occur when the case issqueezed by a user. To enable a piezo strip 210 positioned inside thecase of the mobile device to be sensitive to squeeze gestures (i.e.,application of force or pressure to the sides of the mobile device), thecase may be configured of materials of appropriate thickness so that thecase wall will deform in response to pressure applied by the fingertipsof the user. A piezo strip 210 adhered to an internal surface of a casewall will experience bending strain when the case wall is deformed.However, to detect taps on the case, the case material need not bedeformable.

As is well known, piezoelectric materials generate a slight voltage inresponse to applied pressures or forces which distort the material. Suchvoltages may be very short in duration when the applied force is amomentary tap or acceleration, and may vary with temperature. Also,various aspects anticipate that the piezo strip 210 will be touched evenwhen user input gestures are not being executed (i.e., when the surfacesbeing grasped by the user holding the device). Additionally, usersholding or manipulating their mobile devices will continuously applyforces to the piezo strip 210 that are not associated with user inputgestures, such as repositioning fingers on the case 104 and picking upthe device, in addition to forces caused by accelerations due tomovement, such as while walking or riding in a car. Therefore, thevarious aspects include methods for analyzing the electrical outputsfrom piezo strip 210 sensors to recognize patterns corresponding to userinput gestures within a background of bias voltages and miscellaneous“noise.”

In the various aspects, the user input gestures may be defined to bethose which generate recognizable patterns of voltage signals generatedby the piezo strip 210 in response to the applied pressure or forces.For example, user input gestures may be in the form of a series of tapswhich may be recognized and counted, one or more squeezes which applypressure to particular locations (such as above opposite sides of thedevice) above a threshold value and exhibiting a recognizable pattern,sliding touches which may exhibit a different characteristic signalpatterns, scratching of the surface with a fingernail or implement whichmay exhibit characteristic signal patterns, and flexing of the mobiledevice case (or parts of the case) which may be sensed by appropriatelypositioned piezo strip 210 (e.g., shown in FIG. 14).

A variety of touch sensing and/or force measuring sensor technologiesmay be used. As shown below, piezoelectric sensor technology (“piezosensor”), such as piezo strips 210, provide a suitable sensor technologythat may be utilized. Other technologies may be used, such as resistivestrain gage sensors which change resistance in response to strain (i.e.,distortion), capacitive sensors and inductive sensors. The methods ofthe various aspects can be used with all sensor technologies in a mannervery similar to that for piezo sensors. Therefore, for ease ofdescription, the various aspects are described with reference to piezosensors (e.g., piezo strips 210). However, such descriptions are notintended to limit the scope of the claims to a particular sensortechnology unless specifically so recited.

The viability of such pattern recognition methods is demonstrated by thesignal plots shown in FIG. 3 that were obtained from a prototype of aparticular aspect. In this prototype test, a mobile device was equippedwith two piezo strips positioned on either side of the case isillustrated in FIG. 1. The two voltage waveforms 301 a, 301 b werereceived from the two piezo sensors in response to specific inputgestures. Three squeeze gestures in succession (i.e., squeezing themobile device on both sides) produced the waveforms labeled 302 a-302 c.In the wiring configuration implemented on the prototype, the squeezegestures generated recognizable voltage signals on both sides, with theright piezo strip producing a signal similar in magnitude but oppositein polarity to the voltage signal produced by the left piezo strip.Three swiping gestures performed by sliding a finger or thumb along theright side produced the voltage signals labeled 304 a-304 c. Similarly,three swipe gestures performed on the left side produced the voltagewaveforms labeled 306 a-306 c. For example, the squeeze gesture exhibitsa large amplitude, with approximately equal amplitude from sensors onboth sides of the mobile device (as would be expected when the device issqueezed on both sides). In addition to the obvious differences inamplitude, shape and duration of the wave forms generated by slidegestures (i.e., voltage waveforms labeled 304 a-304 c and 306 a-306 c),slide gestures are asymmetrical, such that the characteristic waveformsare generated by sensors on one side of the device, but not the otherside. The obvious differences in shape, magnitude and duration ofvoltage signals between the squeeze and swipe gestures illustratewaveform characteristics that may be recognized using a variety ofanalysis algorithms. The various aspects can utilize such signalcharacteristics to distinguish intentional gestures from the backgroundnoise generated from normal handling of the device.

The various aspects provide circuits and methods for processing theelectrical signals produced by touch sensing/force measuring sensorspositioned on the mobile device case 104, such as piezo strips 210, inorder to recognize predefined patterns and determine correspondingcommands to be implemented by the central processor unit. Since theoutput from touch sensing/force measuring sensors may be in the form oftransient voltages or electric currents, a mobile device processor, or aprocessor dedicated to the touch sensing/force measuring sensors, may beconfigured to recognize spectral and temporal patterns in the signalsreceived from surface mounted touch and force sensors. For example, FIG.4 shows a combination temporal and spectral plot of the electricalsignals received from the prototype mobile device in the squeeze andswipe events shown in FIG. 3. Tapping and squeezing surfaces includingone or more touch and force sensors will produce electrical signals thatexhibit varying the frequency characteristics. For example, the squeezeevents 402 a-402 c can be easily recognized based upon the broadfrequency response of the sensor, while swipe events 404 a-404 c and 406a-406 c exhibits a different frequency range response.

FIG. 4 also illustrates that a significant amount of information can beobtained from the touch sensing/force measuring sensor signals withinthe frequency range of 1 kHz to 10 kHz where much of the signal energyresides, enabling the signal processing to be truncated (e.g., byfiltering) to that reduced frequency range. Filtering of higherfrequencies is advantageous to remove electromagnetic interference (EMI)from external radio frequency signals. Filtering of frequencies below 1kHz is also advantageous because such filtering can eliminate EMI frompower distribution circuits, which can lead to signals at 60 Hz in theUnited States (50 Hz in other countries) and harmonics thereof (i.e.,120 Hz, 180 Hz, etc.), as well as EMI from external sources, such asfluorescent lights.

FIGS. 3 and 4 together illustrate how different types of tap, swipe andsqueeze events can be identified and discriminated using signal analysisin both the temporal and frequency domains. Methods for recognizingsignal patterns in both temporal and frequency domain are well knownfrom the communication arts, and may be applied in a similar manner tothe interpretation and recognition of touch, swipe and squeeze eventsoccurring on a mobile device configured with surface mounted touch andforce sensors of the various aspects.

To convert the voltages received by the touch sensing/force measuringsensor (e.g., piezo sensors) to an input event object that would besuitable for use with mobile device applications, a mobile device mayperform a series of operations in software and hardware components ofthe mobile device. FIGS. 5-7 illustrate example processes forrecognizing gestures within signals received from piezo sensor andidentifying corresponding command inputs. The various operationsillustrated in touch sensing/force measuring sensor and described belowmay be implemented in software, in circuitry, and in a combination ofsoftware and circuitry, including dedicated signal processing chips andspecial purpose or general purpose processors configured with softwareinstructions. Further, the processes may be implemented within or amongthe various software components of the mobile device operating system,including one or more device drivers and a window manager.

An overview method 500 for converting piezo sensor signals into an inputevent object is shown in FIG. 5, which shows process steps that may beimplemented on a mobile device. In method 500 at block 502, a signalgenerated by a piezo sensor may be received via a lead 216 a, 216 bcoupled to a signal processing circuit. The signal received from thepiezo sensor may be filtered at block 506. As would be appreciated byone of skill in the art, such filtering may be performed in circuitry(e.g., by passing the input signal through a filter circuit), insoftware (e.g., by processing signal components in a digital signalprocessor (DSP) using a mathematical filtering algorithm), and acombination of both (e.g., by passing the signal through a band passfilter circuit and then applying filtering algorithms to the resultingsignal in a DSP). In an aspect, the filtering accomplished in block 506may be performed to remove EMI from power distribution frequencies andharmonics thereof (e.g., 60 Hz, 120 Hz, 180 Hz), as well as other commonEMI sources, such as fluorescent lights. As discussed more completelybelow with reference to FIGS. 14A and 14B, the filtering in block 506may also filter out voltage spikes above a maximum threshold to protectprocessor circuitry (e.g., a DSP) that could occur if a piezo sensor issubjected to a large sudden force or shock (e.g., if the mobile deviceis dropped). At block 510 the analog input signal may be converted todigital data, such as in an analog-to-digital converter circuit. Theconversion will typically be performed using a sampling rate within therange 1 kHz to 192 kHz, but the particular sampling rate or ratessuitable for an implementation may vary according to the particularimplementation. In implementations where filtering is accomplished usinga filtering algorithm, the analog-to-digital conversion of block 520 maybe accomplished before some or all filtering of block 506.

At block 514, a processor of the mobile device may compare thecharacteristics of the processed input signal with parameterscorresponding to ideal input types at block 514. For example, the mobiledevice may have stored in a database one or more predefined waveformrepresentations or characteristic parameters corresponding to eachrecognized input gesture. For example, the mobile device processor maycompare the received input signal data with stored patterns orcharacteristics of a signal expected from a squeeze input gesture todetermine a degree of similarity. The mobile device may then determineif the degree of similarity between the received signal and any of thestored signal patterns or characteristics is sufficient to recognize amatch at determination block 520. If no match is detected (i.e.,determination block 520=“No”), the input signal may simply be ignoredand processing returned to a previously running process at block 522.

If the processor determines there is a match (i.e., determination block520=“Yes”), the processor may take additional measurements or note otherdata relevant to the matched input gesture. For example, if the mobiledevice recognizes a tap input, the mobile device may measure the tapforce and duration from the input signal. Alternatively, if the mobiledevice recognizes a swipe input, the mobile device may measure thestarting location, speed, direction, and length of the swipe. The mobiledevice may also access other sensors for information relevant toprocessing the matched input gesture. For example, if the processorrecognizes a squeeze gesture, the processor may access an accelerometerto determine if the mobile device is being squeezed and shakensimultaneously. As another example, the if the processor recognizes asqueeze gesture, the processor may access an accelerometer to determineif the mobile device is oriented vertically or horizontally, and use theorientation to determine the correct function to implement. For example,if the processor detects a squeeze gesture and an accelerometer inputindicates that the mobile device is oriented horizontally, the processormay interpret the squeeze gesture as a command to activate a cameraapplication or take a digital photograph.

At block 528 may generate an input event object based on the matchedinput gesture and other accessed data, and forward the generated inputevent object to an application or to the window manager at block 530.Similar to a typical mobile device, a force sensor input recognized tobe equivalent to a button click event may be sent to an application asan onclick object in a manner that causes an onclick function toexecute. Such an onclick object may include parameters such as theidentifier of the button clicked or the position of the pointer at thetime of the click. An input event such as a squeeze may be handled in asimilar manner. Alternatively, an input device driver may generate theinput event object. The input event may be forwarded to an applicationat block 530 and it may be handled or ignored by the application. Forexample, the application may be a user-level application such as acamera or may be a lower level application such as the phone or simplyanother portion of the operating system.

The process for recognizing sensor signals in block 514 may beaccomplished using a variety of methods. The possible methods include atime-domain cross-correlation method, a frequency-domaincross-correlation method, a hidden Markov model method, and a vectorspace model method. Further, the various methods may be employed insequence, in parallel, and in a weighted probabilistic method. Theobjective of the signal analysis methods is to recognize signal patternscorresponding to predefined user input gestures while ignoring signalsdue to noise and random manipulation of the mobile device. Threeexamples of processing methods are described below with reference toFIGS. 6A, 6B and 7.

In order to enable the recognition and correlation of received piezosensor signals to particular input gestures and functions, a referencedatabase of sensor signals or characteristics (also referred to hereinas reference signal templates) may be prerecorded and stored in memoryin a variety of forms. The reference database may contain pre-recordedsensor output signals received during particular user interactions andgestures, such as in a training process, as described more fully below.The reference database may also contain pre-determined signal patterns,such as signal patterns defined by the manufacturer. Depending upon thetype of correlation mechanism used, the prerecorded reference databasemay include time-domain signal data, frequency-domain data (i.e., signaldata that has been converted to the frequency domain before saving),data that may be used in a hidden Markov model comparison or Bayesiananalysis method, vector space modeling of sensor signal characteristicvectors, and combinations of these different data formats. The referencedatabase may be stored as PCM, WAV, MP3, or other suitable data formatfor representing sensor waveform data. The reference database may bestored in internal memory of the mobile device, on a removable memorychip (e.g., a SIM card), or a combination of internal and removablememory.

An example time-domain cross-correlation method 514A is illustrated inFIG. 6A. In this method, the received signal is analyzed in thetime-domain (e.g., as received) to compare and correlate the signal totime-domain waveforms stored in memory to identify a most likely matchand a measure of the correlation of the input signal to the storedwaveform. In method 514A the received piezo sensor signal may benormalized at block 602. As part of such a normalizing process, thereceived signal data may be scaled or normalized in amplitude orfrequency. Such normalizing may be accomplished using a method andparameters that were used to normalize a reference signal database, sothat the normalizing of the received signal prepares it for comparisonwith the reference database.

In method 514A at block 604, the processor may analyze the receivedsignal to determine the portions of the input signal to analyze. Asillustrated in FIG. 3, signals associated with an input gesture will beinterspersed by long periods of random noise and signal input. Thus, theprocessor may analyze the stream of incoming signals to distinguish thesignals which should be analyzed, such as compared to a referencedatabase, while ignoring those signals that are associated with noise.One method that may be used in block 604 for recognizing an input signalthat has the potential of being an input gesture (i.e., a signal thatshould be analyzed) involves zero cross point detection, which notes thefrequency at which the input signal crosses the zero value. Asillustrated in FIG. 3, random noise may be recognized by the frequencyat which the zero point this crossed, so that an idle state (i.e., astate in which no gesture is being input) may be recognized by closelyspaced (i.e., frequent) zero crossing points, while potential inputgestures (e.g., detected as a flexing or tapping signal) are recognizedby a change to more widely space (i.e., abrupt reduction in frequency)zero crossing points. Using this method, the processor may recognize apotential user input by an abrupt increase in the spacing of zero pointcrossings, and continue to sample/analyze the signal untold the zeropoint crossing frequency returns to that characteristic of an idlestate.

Another method for recognizing an input signal that has the potential ofbeing an input gesture (i.e., a signal which should be) in block 604 mayinvolve calculating a pointwise deviation or standard deviation of thereceived signal from a trailing average of several signal measuresincluding the total RMS or peak energy threshold across all frequencies.As illustrated in FIG. 3, a user input, such as a squeeze or swipe on apiezo sensor results in an output signal that is significantly differentthan the baseline noise. Thus, comparing each signal point to a trailingaverage signal level can be used to recognize a significant departurefrom averaged which can be compared to stored signal patterns.

Another method for recognizing an input signal that has the potential ofbeing an input gesture in block 604 involves comparing the RMS or peakenergy of the entire signal, or a portion of the signal, such as at agiven frequency, a given frequency range, at multiple frequencies, ormultiple frequency range bins to one or more threshold values. Forexample, as shown in FIG. 3, the average RMS energy of the receivedsignal between user input gestures is low, while the RMS energy of thereceived signal during an input gesture is much higher. Thus, an inputsignal worthy of analysis may be one whose energy exceeds a thresholdvalue. Such a threshold may be determined by the manufacturer as a valuebelow which it is presumed that a user input gesture is not be made.Alternatively, the threshold value may be set based upon user traininginputs, as described more fully below. As shown in FIG. 4, the amplitudeof the frequencies included in a piezo sensor signal output during auser input gesture include measurable energy in frequencies in the rangeof 1 kHz to 10 kHz, while the baseline signal (i.e., the signal betweenuser input gestures) does not. Based on production model testing, oruser training, particular frequencies or frequency bins may beidentified which typically exceed a threshold value during a user inputgesture, but not during other use. In this method, a circuit maycontinually sample the input signal and compare the RMS value, or theRMS value of a particular frequency range, to a threshold, and output aninterrupt (or other signal) to indicate when the input signal should beanalyzed. Analysis of the input signal may then continue until thesignal falls back below the same or another threshold value for apredetermined amount of time.

In another aspect, the input signal may simply be may analyzedcontinuously by comparing the signal to one or more templates todetermine whether there is a match. In this aspect, the block 604 may beunnecessary.

When an input signal is recognized as having the potential of being aninput gesture in block 604, the processor may begin downsamping theincoming signal and storing the results in memory (e.g., a temporarybuffer) at block 608 to obtain signal data for comparison topredetermined or prerecorded signal patterns. Downsampling of theincoming signal may reduce the amount of signal processing required inthe correlation process, thereby rendering the analysis less resourceintensive as well as reducing the size of the memory required forstoring the input signal. Alternatively, the processor may store theentire waveform (i.e. the full-bandwidth sensor output) in memory anddownsample portions of the stored signal from memory on the fly orduring the cross correlation process.

With the received signal stored in memory, the signal may be compared toeach reference signal in the reference database. In an aspect, thiscomparison may be performed in an iterative manner as illustrated inFIG. 6A. Thus, at block 612, the processor may access a reference signalstored in memory corresponding to a first predefined user input gesture.At block 616, the processor may calculate a cross correlation betweenthe input signal portion and the reference signal at block 616. Thistime-domain comparison between the stored input signal and apre-recorded waveform may employ well known statistical analysistechniques to determine a degree of similarity or correlation value. Aspart of block 616, the calculated similarity or correlation value may bestored in a buffer along with the corresponding input gesture to enablethe processor to determine a best match (i.e., best correlation value)among all of the prerecorded waveforms. The similarity or correlationvalue may also be compared to a threshold value so that only thosepatterns that closely match the input signal are considered further. Atdetermination block 620, the processor may determine if there is anotherreference signal stored in memory for comparison. If so (i.e.,determination block 620=“Yes”), the processor may access the nextreference signal at block 612 and calculate another similarity orcorrelation value at block 616. Once the input signal has been comparedto all of the stored reference signals (i.e., determination block620=“No”), the processor may determine the reference signal with thehighest similarity or best correlation value, and thus best matching thereceived input signal, at block 624. At determination block 628, theprocessor may determine whether the determined highest similarity orbest correlation value is sufficient to justify returning a match atblock 632. This determination helps to reduce the frequency of falsepositive correlations which could be annoying to users if randomhandling of their mobile device frequently generated a function responsenot intended by the user. It is worth noting that, depending upon thealgorithm or formula used to calculate the correlation value, bestcorrelation may be indicated by the largest or a lowest calculatedvalue. Thus, the threshold used to determine whether a correlation valueis sufficient may be either a maximum or minimum value. If thesimilarity or correlation value insufficient (i.e., determination block628=“Yes”), the processor may return an identifier of the correlatedinput gesture to a window manager or an application at block 632. If not(i.e., determination block 628=“No”), the processor may return a nomatch indication or simply ignore the sensor input at block 638.

As a further refinement shown in method 514B illustrated in FIG. 6B, oneor both of sensor input signals and reference signal database entriesmay be assigned a weighting factor before or after cross correlation.Weighting factors may be applied to the prerecorded reference signals,to the received sensor input signal, or combinations of both.

In method 514B, the processing of sensor signals may proceed asdescribed above with reference to FIG. 6A with respect to like numberedblocks, in addition to which the processor may determine an appropriateweight to apply to received sensor input signals depending upon avariety of factors at block 652. For example, at block 652, theprocessor may assign one or more weighting factors to be applied toreceived sensor input signals based upon a current operation mode, acurrently active application, a previously implemented function orcommand, a recognized state (e.g., being held by a user), a sensorreading (e.g., a temperature or accelerometer reading that may indicatethat the mobile device is being held by the user), and combinationsthereof. Such a weighting factor may be a numerical value that may bemultiplied or added to a sensor input value in a manner consistent withthe calculation or algorithm used to calculate a correlation value atblock 658. The single weighting factor (or factors) may be applying tothe received sensor signal values at block 654, such as by multiplyingor adding the factor to the received signal value.

Similarly, in method 514B, the processor may determine a weightingfactor that should be applied to a reference signal at block 656 thedepending upon a variety of factors depending upon current operatingmodes, circumstances or previous operations. Such factors may include acurrently active application, a current operation mode, a previouspreviously implemented function or command, a recognized state, a sensorreading, and combinations thereof. For example, at block 656, theprocessor may assign a weighting factor greater than 1.0 to thosereference signals which correspond to functions that are relevant to anapplication currently operating on the mobile device. Thus, when acamera application is active, those reference signals corresponding touser input commands relevant to the camera application (e.g., shutterand zoom control) may be given a higher weighting factor than referencesignals corresponding to user input commands relevant to anotherapplication or device operations. For example, once a user input gestureis recognized and executed activating a camera application, referencesignals associated with camera function input gestures may be givenincreased weight and subsequent sensor signals may be assigned a higherweight in order to increase the probability that a camera functionactivation gesture will be recognized. As another example, a first userinput gesture may be recognized as a prefix gesture in response to whichthe processor may assign a higher weighting factor to those referencesignals corresponding to user input commands relating to, or onlyrelevant in the context of, the prefix gesture, much like how the “alt,”“ctrl” and/or function keys on a conventional keyboard can assign analternative meaning to a subsequent key press. Thus, a five fingersqueeze gesture may function as a prefix for user input gesturesfeaturing a swipe movement or sequence of taps. Such a prefix gesturemay be used to enable gestures that might otherwise be confused withnormal handling of the mobile device. By implementing suchapplication-specific, prefix-specific, or condition-specific weightingfactors with reference signals, the processor may be able to correctlycorrelate a set of signals received from one or more force sensors whichwould otherwise exhibit nearly equal correlation values for multiplereference signals.

At block 658, the processor may calculate a weighted cross-correlationof the weighted input signal portion and the weighted reference signalto determine the correlation value to be used in determining whether thesignals are associated with an intended user input gesture. The mannerin which the weighted cross-correlation is calculated will depend uponthe particular type of correlation algorithm implemented. Thus, at block658, the signal-to-reference correlation value that is calculated may beenhanced or decreased based upon weighting factors applied to thereceived input signal, the reference signal being evaluated, or both.Such a weighted cross-correlation value may then be used to determinethe reference signal with the highest correlation to the received inputsignal at block 624 as described above with reference to FIG. 6A.

The assignment of weighting factors to received input signals and/orreference signals may also be accomplished on a per-sensor basis, sothat those force sensors positioned on the mobile device that would beexpected to receive a particular user input gesture may be given greaterweight than signals from other sensors on the mobile device. Forexample, if a camera application is active, those force sensorspositioned on the mobile device in locations where a user's fingers areexpected when taking a photograph (such as illustrated in FIG. 13) maybe assigned a higher weighting factor than signals from sensorspositioned in other locations on the device case.

In this aspect, predefined reference signals may be assigned weightingfactors based upon the associated functionality or upon the nature ofthe input gesture itself. For example input gestures associated withfunctionality which, if falsely activated, would have little impact onthe user experience, may be assigned to a higher weighting factor sincethe mobile device can accommodate a higher false positive correlationrate for such gestures. As another example, some user input gestures maybe associated with critical functionality such that when there issufficient correlation to that gesture it is selected above otherpotential correlating gestures. Some user input gestures may also beassigned a higher weighting factor if the nature of the gesture isunique such that inadvertent activation is very unlikely. For example,if the input gesture involves a number of repetitions and simultaneousinputs on multiple services (e.g. a sequence of three squeeze gestureswithin a two second period), such a gesture may be given a greaterweighting factor so that it is preferentially selected over otherpotential correlations. Thus, the more unique the input gesture, thehigher the weighting factor that may be applied.

In this aspect, the received sensor input signal may also be assignedweighting factors depending upon a user setting or functionalityselection (e.g., putting the device into a squeeze gesture input mode),other sensor data, the total RMS energy level of the input signal, orpreviously received, recognized and processed input gestures. In anaspect, a user may activate an operational mode for receiving user inputgestures, such as by pressing a button, selecting a menu option, ormanipulating the mobile device in a recognizable manner (e.g., shaking,squeezing and holding, etc.). In this mode, the sensor signals may begiven a higher weighting factor since the user has indicated an intentto perform a user input gesture. In an aspect, information received fromaccelerometer, temperature, end location (e.g., GPS receiver) sensorsmay be evaluated to determine whether a current surface force sensorinput should be given a higher weighting factor. As an example ofanother-sensor-data initiated weighting factor, if a deviceaccelerometer signal indicates that the mobile device is orientedhorizontally, the sensor input signal may be given greater weight sinceit may be presumed that the user is likely to use as an input gesturefor taking a picture or sorting visual media. As another example, thenature of measured accelerations and/or a surface temperaturemeasurement (which, as described below, may be determined from the piezosensors themselves) may be analyzed to recognize when the mobile deviceis being held in the hand of the user, and thus a user input gesture isto be expected. The mobile device may be configured to recognize that itis being held by comparing the sensor signals to predefined referencesignal patterns stored in memory (e.g., a level of random noise andsignals combined with a voltage bias associated with a temperaturerise). In an aspect, a previous function execution may prompt assigninga greater weight to a subsequent sensor input signal, such as to receivea sequence of user input gestures. For example, after a user inputgesture has put the mobile device in a user input mode, sensor signalsmay be given a higher weighting factor. As another example, somerecognized and executed functions will indicate that a subsequent userinput gesture is likely, and thus subsequent sensor signal should begiven a higher weighting value. For example, as discussed above, a userinput gesture which activates a camera application may also promptsubsequent sensor signals to be assigned a higher weight to increasedthe probability that a camera function activation gesture will berecognized.

In another aspect illustrated in FIG. 7, the received sensor inputsignal may be cross correlated to a frequency-domain reference torecognize a user input gesture and identify the correspondingfunctionality. In method 514C at block 602, the mobile device processormay normalize the received signal, and at block 604, identify a portionof the input signal to be analyzed, using methods similar to thosedescribed above with reference to FIGS. 6A and 6B for like numberblocks. At block 608, the input signal portion may be downsampled andstored in memory, such as a sampling buffer, or the full-bandwidthsignal may be stored in memory, such as a sampling buffer. In method514C at block 702, the processor may perform a fast Fourier transform(FFT) on the stored input signal, such as an n-point FFT process, totransform the signal into frequency-domain data which may be stored inmemory. In block 702, the processor may use zero padding and a largernumber n of samples for a higher resolution input system. The FFTtransform processing block 702 may utilize a Hamming window, aBlackman-Harris window, a rectangular window, other sampling window, ora combination these different windows. Alternatively, at block 702 theprocessor may calculate an average of multiple FFT transformations withshifting sampling windows to provide a representation of the averagefrequency content of a waveform within the received sensor input signal.

With the frequency-domain signal data stored in memory, the frequencypatterns in the signal may be compared to each reference signal in thereference signal database. In an aspect, this comparison may beperformed in an iterative manner as illustrated in FIG. 7. Thus, atblock 612, the processor may access a reference signal pattern stored inmemory corresponding to a first predefined user input gesture. At block706, the processor compares the stored input signal frequency-domaindata to a pre-recorded frequency pattern, such as by employing wellknown statistical analysis techniques, to determine a degree ofsimilarity or correlation value. As part of block 706, the calculatedsimilarity or correlation value may be stored in a buffer along with thecorresponding input gesture to enable the processor to determine a bestmatch among all of the prerecorded frequency patterns. The similarity orcorrelation value may also be compared to a threshold value so that onlythose frequency patterns that closely match the input signal areconsidered further. At determination block 620, the processor maydetermine if there is another reference signal stored in memory forcomparison. If so (i.e., determination block 620=“Yes”), the processormay access the next reference signal at block 612 and calculate anothersimilarity or correlation value at block 706. Once the input signalfrequency-domain data have been compared to all of the stored referencesignals (i.e., determination block 620=“No”), the processor maydetermine the reference signal with the highest similarity orcorrelation value, and thus best matching the received input signal, atblock 624. At determination block 628, the processor may determinewhether the best calculated similarity or correlation value issufficiently high to justify returning a match at block 632. Thisdetermination helps to reduce the frequency of false positivecorrelations which could be annoying to users if random handling oftheir mobile device frequently generated a function response notintended by the user. If the similarity or correlation valueinsufficiently high (i.e., determination block 628=“Yes”), the processormay return an identifier of the correlated input gesture to a windowmanager or an application at block 632. If not (i.e., determinationblock 628=“No”), the processor may return a no match indication orsimply ignore the sensor input at block 638.

Similar to the processing of time-domain signals as described above withreference to FIG. 6A, the highest correlation value determination atblock 624 and/or the determination of a sufficiently high correlation atdetermination block 628 may be accomplished using weighted input signaldata and/or weighted reference signals in order to better correlatesensor data to intended user input gestures.

In another aspect, the processing at block 514 of FIG. 5 may beaccomplished using a hidden Markov process. The hidden Markov model is awell known statistical model in which a system is modeled assuming thatit involves a Markov process with an unobserved state, in this case theinput signal that would be received from the intended user inputgesture. Implementation of a hidden Markov process may be enabled bydeveloping a reference signal database through supervised learning ofsensor signals during training routines. Such a user-trained referencesignal database may then be used to derive the maximum likelihood of anintended user input gesture given a recorded sensor output using ahidden Markov process. Such a user training process for generating areference database is described below with reference to FIG. 9.

In a further aspect illustrated in FIG. 8, the processing at block 514of FIG. 5 may be accomplished using a vector space model method. Thevector space model is a well known algebraic model for representing dataobjects as vectors of identifiers, and calculating a measure ofsimilarity or correlation between two data objects based upon the anglebetween the sectors characterizing the two data objects. In practice, itis easier to calculate the cosine of the angle between the vectorsinstead the angle itself, so the method may calculate cos⊖=(V₁*V₂)/(∥V₁∥*∥V₂∥) where V₁ may be the vector characterizing thereceived sensor signal and V₂ may be the vector characterizing thereference signal. The vector space model may be applied to the entirewaveform or selected portions of the waveform, such as time slicesamples of the waveform to generate a series of cos ⊖ calculations whichmay be averaged or otherwise used to determine an overall match.Further, the vector space model may be applied to time-domain data tofrequency-domain data, and to both time- and frequency-domain data.Referring to FIG. 8, in method 514C at block 602, the mobile deviceprocessor may normalize the received signal, and at block 604, identifya portion of the input signal to be analyzed, using methods similar tothose described above with reference to FIGS. 6A and 6B for like numberblocks. At block 608, the input sensor signal portion may be downsampledand stored in memory, such as a sampling buffer, or the full-bandwidthsignal may be stored in memory, such as a sampling buffer. At block 712,the processor may determine a vector V₁ or vectors characterizing thereceived sensor signal for example, the received sensor signal may becharacterized in terms of direct or elements defined by RMS values atparticular frequencies in the frequency domain, or RMS values atparticular time slices in the time domain.

With the signal vector V₁ determine, cosine of the angle between thesignal vector and each reference signal vector in a reference signalvector the database may be calculated. In an aspect, this calculationmay be performed in an iterative manner as illustrated in FIG. 8. Thus,at block 714, the processor may access a reference signal vector storedin memory corresponding to a first predefined user input gesture. Atblock 716, the processor calculates the cosine of the angle (cos ⊖)between the signal vector V₁ and the reference vector V₂. As part ofblock 716, the calculated cosine value may be stored in a buffer alongwith the corresponding input gesture to enable the processor todetermine a best match among all of the prerecorded single vectors. Alsoas part of block 716, the cosine value may be compared to a thresholdvalue so that only those signal vectors that closely match the inputsignal are considered further. According to the vector space model, acosine value close to zero means the vectors match, and thus there is agood correlation between the input and reference signals, while a cosinevalue close to one being the vectors do not match. Thus, as part ofblock 716, only those cosine values less than a threshold (e.g., lessthan or equal to 0.5) will be stored in a buffer for determining a bestmatch. At determination block 620, the processor may determine if thereis another reference vector stored in memory for comparison. If so(i.e., determination block 620=“Yes”), the processor may access the nextreference signal at block 714 and calculate another cosine value atblock 716. Once the input signal vector has been compared to all of thestored reference vectors (i.e., determination block 620=“No”), theprocessor may determine the reference signal vector that results in thelowest cosine value, and thus represents a best match between withreceived input signal, at block 718. At determination block 720, theprocessor may determine whether the lowest cosine value is sufficientlylow enough to justify returning a match at block 632. This determinationhelps to reduce the frequency of false positive correlations which couldbe annoying to users if random handling of their mobile devicefrequently generated a function response not intended by the user. Ifthe best cosine value insufficiently low (i.e., determination block720=“Yes”), the processor may return an identifier of the correlatedinput gesture to a window manager or an application at block 632. If not(i.e., determination block 720=“No”), the processor may return a nomatch indication or simply ignore the sensor input at block 638.

Similar to the processing of time-domain and frequency-domain signals asdescribed above with reference to FIGS. 6 and 7, the lowest cosine valuedetermination in block 718 and/or the determination of a sufficientlylow cosine value in determination block 720 may be accomplished usingweighted input signal data and/or weighted reference signal vectors inorder to better correlate sensor data to intended user input gestures.

As discussed above, the reference signal database may be populated inwhole or in part by the user performing a series of training operationsin order to determine the normal signal response from the userperforming particular input gestures on the user's mobile device. Suchindividual training ensures that the unique patterns of force applied bythe individual's fingers and the sensor characteristics of the mobiledevice are accurately reflected in the reference database. For example,users will have different sized fingers and different hand strength, andthus will be applied different forces to the surface of the mobiledevice while performing particular input gestures. Also, the specificsignal generated by force sensors on the case and the mobile device willdepend upon the characteristics of the sensors and the case. Toaccommodate such variability, an aspect provides for user training ofinput gestures.

FIG. 9 illustrates an example method 900 which may be used forpopulating a reference signal database through user training routines.In method 900 at block 902, the mobile device may display a promptinviting the user to input a particular functionality to be associatedwith a particular input gesture. For example, the display could ask theuser to press a button or make a menu selection indicating the functionthat the user would like to have accomplished when the input gesture isdetected. At block 904, the mobile device may display a prompt invitingthe user to execute the input gesture. At block 906 the mobile devicebegins monitoring piezo sensors in order to record the signals receivedwhen the user accomplishes be indicated gesture. At block 908, themobile device may monitor the signals received from piezo sensors todetermine when the user input gesture is beginning. This detection ofthe beginning of a user input gesture may utilize the methods describedabove with respect to block 604 in FIGS. 6A and 6B, such as detectingwhen the sensor departs dramatically from the running average RMS signalreceived from each sensor. At block 910, the mobile device may processthe received signal so as to receive the data in a format appropriatefor saving as a reference signal. For example, in implementations whichwill down sample piezo sensor signals, the signals received from thepiezo sensors during the training routine may be down sampled in thesame manner. Additionally, the received signals may be normalized,filtered, and otherwise processed in the same manner that would beaccomplished for detecting user input gestures after training Forimplementations which analyze piezo sensor signals in the frequencydomain, the processing at block 910 may include accomplishing an FFT onthe signals to convert them into frequency-domain data. The processingof piezo sensor signals at block 910 may continue until the inputgesture appears to have completed, such as by the signal returning tothe level exhibited prior to the start of the gesture. As part of theprocessing at block 910, the processed signal waveform and/or frequencydata may be stored in a buffer.

At block 912, the processed and stored signal waveform or frequency datamay be statistically combined with previously stored signal waveforms orfrequency data for the same input gesture in order to generate anaverage or statistically representative signal waveform or frequencydata. This averaging processing enables the training routine toaccommodate the natural variability in human movements and gestures inorder to generate a reference signal waveform or frequency data that isrepresentative of an average or most probable pattern. The results ofthe statistical combination may then be stored in temporary memory aspart of block 912. At determination block 914, the mobile device maydetermine whether the training of the particular input gesture should berepeated, such as by counting the number of times the gesture has beenperformed. If the gesture should be repeated (i.e., determination block914=“Yes”), the mobile device may return to block 900 for two againdisplay a prompt inviting user to perform the input gesture. Oncesufficient repetitions of the flick gesture have been performed (i.e.,determination block 914=“No”), the final statistical combination ofsignals from the multiple training repetitions may be stored in thereference signal database linked to the functionality indicated for thegesture by the user at block 916. Thus, such a reference signal databasemay include data records having a function identifier or a pointer to afunction call and one or more data records storing the averaged sensorsignal waveform and/or frequency data. At determination block 918, themobile device may determine whether more reference signals should becreated. For example, the mobile device may display a prompt to the userinquiring whether the user would like to define another input gesture.As another example, the mobile device may be configured by a factorywith a number of predefined input gestures which require personalizingtraining, in which case determination block 918 may involve determiningwhether an additional factory defined gesture remains to be trained. Ifanother input gesture is to be defined and trained (i.e., determinationblock 918=“Yes”), the mobile device may return to block 902 to display aprompt inviting user to identify the functionality to be associated withthe next input gesture. Once all of the input gestures have been definedand trained (i.e., determination block 918=“No”), the gesture definitionand training routine may end at block 920.

It should be appreciated that the training method 900, the order inwhich a user may define the functionality to be linked to a gesture andperform the gesture in a training loop may be different from thatdescribed above. For example, a user may complete the training of aninput gesture and then identify the function that should be associatedwith it. Additionally, the training method 900 may include steps fordefining multiple functionalities for a particular gesture dependingupon the application running on the mobile device, inputs received fromother sensors (e.g., accelerometers), device operating states, andpreviously processed user input gestures. All of these may be defined inconfigured in the user training routine.

In various aspects, force sensitive membranes (or similar sensors) maybe configured in a manner that increases the sensitivity or positionresolution of the sensors. More sensitive implementations may bereferred to as higher resolution, as they may capture more preciselocation and force information. FIGS. 10A and 10B show higher resolutionimplementations of a force sensitive input strips 115 b mounted on amobile device case 104. FIG. 10A shows a single piezo strip 210 withmultiple contact pairs 214 a-h connected to leads 216 a-f. FIG. 10Bshows multiple piezo strips 210 a-d, each with a pair of contacts 214a-h connected via leads 216 a-f. Positioning multiple contact pairs on asingle piezo strip may enable the strip to generate multiple inputsignals which may vary depending upon the location of applied force,thereby providing some information regarding the location on the stripwhere force is applied. Positioning multiple piezo strip sensors 210 a-don a surface of the case 104 can provide sensor signals which arelocalized to the area of the strips. Thus, the use of four piezo strips210 a-d on a side of a mobile device case 104 in the manner illustratedin FIG. 10B would enable separate input signals to be received from eachof four fingers gripping the device. Multiple signals from piezo stripswith multiple contacts or from multiple piezo strip sensors may beprocessed in parallel, or the signals may be buffered or multiplexed toenable sequential processing. In some implementations, each individualsensor output signal may be assigned a weighting factor before or aftercross-correlation.

The various aspects described above enable a broad range of usefulgestures for enabling user inputs that may be implemented in mobiledevices. Of particular benefit may be the ability to interpret variousone-handed gestures that can be implemented on a mobile device held inone hand in a convenient manner. An example of one such gesture isillustrated in FIG. 11 which shows a mobile device 100 being held in auser's right hand, squeezed between the thumb 1102 and fingertips 1104.This is a comfortable position for holding a mobile device 100, but thefingers 1104 are not available for touching keys or a touch surface.Thus, to touch the display screen or buttons would require the user totouch the device with the other hand. However, there are manycircumstances in which users do not have a free hand for interfacingwith the mobile device. For example, if a person is speaking on acellular telephone while driving, one hand must remain on the steeringwheel and users cannot safely divert their attention to look at adisplay screen or keypad to interface with the device using conventionaluser interface mechanisms. The various aspects provide a simple userinterface gesture that can be executed by one hand holding the devicewithout requiring the user to look at a display screen or keypad.

As illustrated in FIG. 11, one simple gesture that may be implemented ona mobile device equipped with a touch/force sensor on the peripheraledges (i.e., in locations on the mobile device 100 in contact with thethumb 1102 and fingers 1104), is to slide the thumb 1102 along one edgeof the device. As discussed above, such a sliding or swiping gesture maybe recognized based upon the signals produced by a touch/force sensorpositioned on the side of the mobile device 100 so as to be contacted bythe user's thumb 1102. Detection of such a slide or swipe event and thedirection of the sliding movement may be interpreted as a user inputgesture associated with a particular function or command for the mobiledevice. For example, detection of such a sliding or swiping movement maybe interpreted as a command to change the volume when the mobile deviceis conducting a cellular telephone call. When a cellular telephone callis not in process, the detection of a thumb 1102 sliding on the side ofthe device may be interpreted as a user gesture to scroll through aphone directory, flip to a subsequent e-mail message, scroll through acalendar of scheduled events, change a channel or frequency forreceiving radio or mobile television broadcasts, change a map displayresolution, etc., all depending upon the application that is executingon the mobile device.

In the gesture illustrated in FIG. 11, the mobile device 100 mayrecognize the thumb sliding gesture as indicating one function when allfour fingers 1104 are pressing against the opposite side the mobiledevice, and a different function when fewer than four fingers 1104 arecontacting the opposite side of the mobile device case 104. In thisaspect, a user may change the gesture to indicate a different command tobe implemented by lifting one or more fingers 1104. Thus, a thumbsliding gesture with four fingers 1104 contacting the mobile device 100may have a different meaning than a thumb sliding gesture when threefingers 1104 are touching the mobile device, which may be different fromthe meaning of a thumb sliding gesture when two fingers 1104 aretouching the mobile device. Additionally, the force applied by thefingers 1104 may be measured and used as a way of distinguishingdifferent commands associated with thumb sliding gestures. Thus, a thumbsliding gesture with light force from four fingers 1104 may have adifferent meaning than a thumb sliding gesture with heavy force appliedby the four fingers 1104.

In a further example illustrated in FIG. 12, the relative force appliedby the thumb 1102 and one or more of the fingers 1104 may be interpretedas a user input. For example, light force applied by the thumb 1102 andindividual fingers method for may be distinguished from heavy force,such as based upon the magnitude and characteristic of the signalreceived from the touch/force sensing surface of the mobile device 100.In this aspect, the force applied by each digit and the variouscombinations of digits may be correlated to particular commands. Thus,heavy force by the thumb 1102 may be associated with a first command,heavy force by the thumb 1102 and a the index finger may be associatedwith the second command, heavy force by the thumb 1102 and the indexfinger and pinky finger may be associated with a third command, etc. Inthis manner, a number of user input gestures may be configured similarto how musicians interface with musical instruments, such as a trumpetor clarinet.

Another example of user input gestures based on touch/force measuringsurfaces is illustrated in FIG. 13. In this example, the mobile device100 is held in the landscape configuration between the thumb 1102 andindex finger 1106 of the right hand and the thumb 1112 and index finger1116 of the left-hand, as may be convenient when taking a photographwith a built-in digital camera. The mobile device 100 may be configuredto recognize when the device is being held in this manner, such as basedaccelerometer data which indicates the device is in a horizontalorientation and detection of touches on the sides adjacent to each ofthe four corners. When such an orientation is recognized, the mobiledevice 100 may recognize varying force applied by fingertips and slidingforce of the fingers 1106, 1116 and thumbs 1102, 1112 as user inputsgestures relevant to a camera application. For example, a slidingmovement of the left index finger 1116 may be interpreted as a commandto adjust the zoom applied to the image, while a squeezing force betweenthe right-hand thumb 1102 and index finger 1116 may be interpreted as acommand to take a photograph.

The example illustrated in FIG. 13 also serves to illustrate a furthertype of user input gesture in which the release of force is recognizedas part of the gesture. For example, a user may be able to hold a mobiledevice steadier for taking a picture in a camera mode if the shutteractivation is activated by a new release of finger pressure, rather thanan application of force. This is because applying force to the case mayinadvertently twist the mobile device slightly, thereby throwing off theaim of the photo. However, if a user focuses on the subject whileapplying force to the case, the mobile device is less likely to jiggleor move when the user releases pressure. In this aspect, a user gestureassociated with the picture taking functionality may be accomplished intwo steps. In a first step, the user may apply pressure to the case,such as by the right index finger similar to pressing a shutter switchon a conventional camera. Once the user has focused the device on asubject, the picture taking function can be initiated by releasing thepressure applied by the index finger. The mobile device may beconfigured to sense the change in input signal from the piezo sensorpositioned beneath the index finger and correlate that sensor signal tothe picture taking functionality.

The gesture illustrated in FIG. 13 is not limited to camera-relatedcommands, and maybe interpreted differently when a different applicationis active on the mobile device 100. For example, if the mobile device isdisplaying an Internet webpage (i.e., the active application is a Webbrowser), sliding movements of the fingers 1106, 1116 may be interpretedas commands to move a cursor within the displayed image or to pan orzoom the image, while a squeezing force between the right-hand thumb1102 and index finger 1106 may be interpreted as a command to click on ahyperlink within the displayed image. As another example, the slidingand squeezing gestures illustrated in FIG. 13 may be correlated tostandard video control commands when the mobile device 100 is displayinga video, such as a stored video clip or movie, or a mobile televisionimage. As a further example, moving the finger up and down on the sideof the mobile device 100 could be interpreted as user input commands toscroll, pan, or zoom a displayed image when viewing a static digitalphotograph.

As illustrated in FIG. 14A, the use of touch/force sensors on mobiledevices 100 may also be applied to the back case 104. For example, bydeploying touch/force sensors 115 a, 115 b on the sides, and a number ofsuch sensors 115 c-115 g on the back of the case 104, user gestures mayalso be enabled based upon touches on the backside of a mobile device100. In this manner, the back case of a mobile device 100 may beconverted into a form of touch sensor, similar to a touchpad on a laptopcomputer. Since a user holding a mobile device in one hand may apply afinger, such as the index finger, to the back of the case, users can tapor trace shapes on the back case which the mobile device 100 can theninterpret as user input gestures. In this manner, a user may trace lineson the back of the case while viewing the traced lines presented on thedisplay.

An example of a gesture that may be traced on the back of a mobiledevice 100 is illustrated in FIG. 14B. In this example, a user maycommand the mobile device 100 to execute a function by touching the backcase with a finger, such as the index finger 1106, and tracing arecognizable path 1120. The mobile device 100 may be configured todetect and recognize the traced gesture using the methods describedabove, determine the user input command corresponding to the recognizegesture, such as based upon a currently active application, andimplement the command just as if the user had press a function key orexecuted the gesture on a touchscreen display. Such gestures on the backcase may be combined with gestures and forces applied to touch/forcesensors on the side surfaces by other fingers to provide a wide range ofdistinctive user input command gestures that may be executed using thevarious aspects.

By positioning deploying touch/force sensors on multiple surfaces of amobile device case, non-traditional user input gestures may be enabledby the ability to distinguish different types of user touches. Forexample, the sensors and the mobile device processor may be configuredto recognize when a user is touching the device as if petting it. Such auser input gesture may be recognized in combination with accelerometersensor readings as a command to enter a sleep or nighttime clock andalarm mode if the user pets the device while it is still, as on a nightstand. As another example, the sensors and processor may be configuredto recognize a scratch or tickling touch as a command to wake up from asleep mode, or to activate a particular application.

A variety of different sensor sizes, numbers and locations on a mobiledevice case may be implemented to enable a variety of the user inputgestures. For example, a low-cost implementation may include just twosensors each located on one side of the mobile device case 104. Such animplementation may enable the user input gestures described above withreference to FIGS. 11-13. A higher resolution implementation mayimplement multiple sensors on each of the long sides of the mobiledevice case, such as illustrated in FIG. 10B so that applied forces andtaps by each fingers of one hand may be individually resolved. In afurther implementation, one or more sensors may also be applied to thetop and bottom sides of the case so that user input gestures may beaccomplished on those sides as well. In a further implementation,multiple sensors may be applied to the top, bottom, sides and back ofthe case, so as to enable user input gestures to be accomplished on anysurface of the mobile device. Additionally, the size and shape of thesensors may be varied in order to provide more or less positionalresolution of squeeze, tap and swipe user input gestures. In a furtheraspect, piezo strip sensors may be positioned along the bezelsurrounding the display screen of the device so that they may receiveinputs that can correspond to virtual keys or functionality tabs imageon the display adjacent to the bezel.

FIG. 15A illustrates another aspect in which piezo strips 1402 a, 1402b, 1404 a, 1404 b, 1406 a, 1406 b, 1408 a, 1408 b may also be positionedon the mobile device case 104 across bending axes, such as thehorizontal bending access 1412, vertical 1414, and the diagonal axes1416, 1418. Piezo strips positioned in such locations can be configuredto generate signals (e.g., due to bending strain) indicating a twistingor bending force applied to the mobile device. One user input gestureenabled by such a deployment of piezo strips as illustrated in FIGS. 15Band 15C. In this gesture, a user may apply twisting forces to the fourcorners of the mobile device (or table computing device) as shown inFIG. 15B so as to induce a twist in the device in one direction asillustrated in FIG. 15C. In most implementations the amount of twistingdistortion induced in the case may be small, but detectable by the piezostrip sensors 1402 a, 1402 b, 1404 a, 1404 b, 1406 a, 1406 b, 1408 a,1408 b. For example, a user input gesture in the form of a twist of thedevice may be associated with a scroll function (e.g., for a list ordisplayed image) where the direction of scrolling (up or down) dependsupon the direction of the twisting motion.

The deployment of piezo strips as shown in FIG. 15A would also enableuser gestures involving a bending force apply along the long or shortaxes of the mobile device. Such user gestures are illustrated in FIGS.15D and 15E. As a further example illustrated in FIG. 15F, the piezostrips 1406 a, 1406 b and 1408 a, 1408 b along diagonal axes 1416 and1418, respectively, may be configured to generate signals in response toa bending force applied by a user to one corner of the case as ifflexing a paperback book to flip through pages, or “thumbing” the upperright hand corner (for example), to flip through pages. In sensingbending input gestures, signals from a combination of sensors may beused to recognize the gestures, such as signals from sensors along adiagonal axis and both the horizontal and vertical axes. Further,additional piezo strip sensors may be positioned in optimal locations toenable particular gestures, such as a piezo strip 1410 positioned in anupper right hand corner of the mobile device case to sense a pageflipping user input gesture as illustrated in FIG. 15F.

The piezo strip sensors and the circuits and methods that process theirsignals may be configured to distinguish bending user input gestures ona temporal basis (i.e., duration of the generated signal), as well as onthe basis of the induced bending stress. For example, a rapid flex andrelease force (e.g., thumbing a corner of the device) may be recognizedas one user input gesture, a relatively slow flex and release may berecognized as a second user input gesture, and a flex and hold force maybe recognized as a third user input gesture. For example, a rapidapplication and release of the twisting force illustrated in FIGS. 15Band 15C might be interpreted as an activation command or step-wisescroll command, a relatively slow application and release of thetwisting force illustrated in FIGS. 15B and 15C might be interpreted asa page-down scroll command, and a flex-and-hold application of twistingforces might be interpreted as a continuous scroll command.

The different bending directions that may be recognized with the piezostrip configurations illustrated in FIG. 15A in combination withtemporal analysis of the applied forces provide a large number ofdifferent user input gestures that may be implemented. Such inputgestures may be ascribed to application commands so the gestures areintuitively linked to the activated functionality. The twist to scrollthrough a displayed list and corner twist to flip through pages of adisplayed text are just two illustrations of intuitive user inputgestures enabled by the various aspects. Such user input gestures may beparticularly useful in game applications where the physical forcesapplied in executing the gestures can be linked to game actions that areintuitively similar, perhaps enabling entirely new types of games andgame interfaces.

One of the advantages of using piezoelectric material sensors asdescribed herein is that the sensor membranes may be relatively largeand are not sensitive to the location where force is applied. Thus, theplacement of a user's fingers on the device case is not essential to theoperation of the sensor. This enables users to accomplish input gestureswithout having to worry about the placement of fingers on the device,allowing the gestures to be made without requiring the user to look atthe device. To the extent that such force sensors can distinguish thelocation of force, this capability may be used to enable the device tomap button locations to the actual locations of fingers on the case.Both capabilities help to provide one-handed operation that does notrequire the user to look up the device.

In the various aspects, the location, force, duration and direction oftap and slide interactions with the touch/force sensing surfaces of themobile device may be interpreted as different primitives that can berecognized and combined to correlate different user input commands. Forexample, multiple taps at different locations on the case and sides ofthe mobile device 100 may be distinguished as representing differentuser input gestures. Additionally, taps and sustained force may beinterpreted as different commands when executed in different sequences.For example, a single tap followed by a sustained touch (i.e., a “touchand hold” gesture) may be interpreted as one user input gesture, while adouble tap followed by a sustained touch (i.e., a “double tap and hold”gesture) may be interpreted as a different user input gesture. Thelocation of the taps and the sustained touch his may also be factoredinto the interpretation of the user input gesture.

Similarly, the starting point, direction and speed of swipe movementsmay be interpreted as parameters that can be used to correlate thegestures to particular user input commands. For example, a very fastdrag off one side might be interpreted as a flick gesture, similar togestures that may be executed on a touchscreen display. Further, thedirection in which the swipe proceeds across the

In addition to standard application user interface commands, varioustouch, squeeze, tap and swipe gestures may be applied to otherfunctionality, such as a device lock that can only be unlocked using aparticular touch, tap and swipe gesture designated by the user. Forexample, the user may configure the mobile device to remain locked untila particular sequence is applied, such as three taps and a squeeze.Since such gestures can be executed with one hand at the same time thatthe mobile device is picked up, such a device lock could be easy toimplement, providing security for the mobile device without imposingupon the user experience.

A further capability enabled by the various aspects is enabled by thetemperature response of piezoelectric materials that may be used intouch/force sensors. Many piezoelectric materials exhibit a thermalelectric effect or exhibit changes in behavior based upon thetemperature. Such temperature dependent responses may be used as asensor input to enable a mobile device to detect when it has been pickedup and is being held by a user. In general, detection of a temperaturechange consistent with the mobile device being held by a user may beused to initiate an operating mode such that the device behaves in amanner different than when it is at a lower temperature. For example,detection of a temperature rise consistent with being held by a user mayprompt the mobile device to accelerate the processor in anticipation ofreceiving a user input command. As another example, detection of anincrease in temperature consistent with the device being held by a usermay prompt an increase in the weighting factors applied to piezo sensorsignal inputs, since there is a greater probability that the user maysoon accomplished a user input gesture. As another example, the mobiledevice may begin downloading a user's favorite webpages, downloadingelectronic mail or reconciling an e-mail inbox, or pulling down recent“tweets” from a Twitter site. A mobile device may be configured torecognize the when it is being held based upon temperature changes whichwill output a sensor signal in a manner very similar to that describedabove with reference to FIGS. 5-9.

In a further aspect, the mobile device may leverage other sensors incombination with the force and temperature sensing capabilities of piezosensors to initiate actions, change operating modes or configurations,or otherwise adapt to the user's situation. For example, the temperatureand force sensor readings from piezo sensors could be combined withaccelerometer and/or ambient light sensors (e.g., a digital camera) todetermine an appropriate operating mode or setting.

In a further aspect, the mobile device configured with piezo sensors mayenable a “last call” functionality to being enabled when a batteryvoltage sensor indicates that the device battery is nearly out of power.In such a situation, activating the display screen to enable placing atelephone call could drain the remaining battery power. Using thevarious aspects, a user gesture may be programmed into the mobile devicethat enables it to place a telephone call in a minimal power operatingstate, such as without activating the display screen. For example, aparticular phone number may be associated with a user defined inputgesture and further configured so that when a very low battery state isdetected the recognition of this user input gesture would prompt themobile device to place a call to the predefined telephone number in aminimum power state. Thus, if a user attempts to place a call andrealizes that the phone is out of battery power because the screen willnot eliminate, the user may execute the predefined input gesture inorder to place a last call, such as to a family member, before thebattery is completely drained.

The various touch, squeeze, tap and swipe gestures described above mayalso be applied to macros in advanced applications, or linked tofavorite features, such as particular personal preferences on a featurephone.

The various aspects of the invention may utilize signal processingcircuitry to convert a raw voltage received from a piezoelectricmaterial. An example of such a circuit is illustrated in the circuitblock diagram shown in FIG. 16A. The voltage may be received at anelectrode 1402 coupled to a piezo strip. The electrode 1402 may beconnected, directly or indirectly, to an analog to digital converter1422. In an aspect, the electrode may be coupled to a preamplificationstage 1406 which is configured to amplify the sensor signal. The circuitmay also include an analog filter 1410, such as to filter outlow-frequency signals (e.g., 60-180 Hz), such as may be generated bypower circuitry and common EMI emitters, and to filter outhigh-frequency signals that may be received from radio frequencysources. The circuit may also include a shunt resistor 1414 to provide ahigh-pass filter effect and prevent saturation of the analog to digitalconverter 1422 from high voltage spikes. The circuit may also include anESD diode 1418 to prevent large voltages from damaging the circuitry. Adangerously large voltage may be caused by, for example, when a droppedmobile device strikes the ground directly on the piezo strip. Theelectrode 1402 and other circuitry may be assembled together in a singlepackage as a piezo sensor circuit 1400. Multiple piezo sensor circuitsmay share a single analog to digital converter. An example of such anarrangement is illustrated in FIG. 16B. In this example implementation,one or more piezo sensor circuits 1400 a-b may be couple to a singleanalog to digital converter 1422 via a multiplexer 1422. Further, thepiezo sensor circuits 1400 a-b may also share the analog to digitalconverter 1422 with other sensors and input devices such as anaccelerometer 1432, a light sensor 1436, a thermostat 1440 and amicrophone 1444.

The sensor signal processing of the various aspects may be accomplishedusing a variety of known processor circuits. In one aspect, theprocessing power of a central processing unit for the mobile device isused to perform the signal comparisons to the reference signal database.In another aspect, a digital signal processor (DSP) may be used toperform the signal comparisons of the various methods. Such a DSP may bea DSP dedicated to the piezo sensor processing. Alternatively, a DSPwithin a communication modem of the mobile device may be used to processthe piezo sensor signals on a time-sharing basis.

Typical mobile devices suitable for use with the various aspects willhave in common the components illustrated in FIG. 17. For example, theexemplary mobile device 1300 may include a processor 1301 coupled tointernal memory 1302, a display 1303 and to a SIM or similar removablememory unit. Additionally, the mobile device 1300 may have an antenna1304 for sending and receiving electromagnetic radiation that isconnected to a wireless data link and/or cellular telephone transceiver1305 coupled to the processor 1301. In some implementations, thetransceiver 1305 and portions of the processor 1301 and memory 1302 usedfor cellular telephone communications are collectively referred to asthe air interface since it provides a data interface via a wireless datalink. Mobile devices typically also include a key pad 1306 or miniaturekeyboard and menu selection buttons or rocker switches 1307 forreceiving user inputs.

The various aspects are not limited to mobile devices, although suchdevices provide real benefit would benefit from implementation of thevarious aspects. Other computing devices may also be equipped with forcesensing membrane sensors to accomplish similar to enable similar userinput gesture control. An example of such a device is illustrated inFIG. 18 which shows a tablet computer 1800. Such a tablet 1800 computingdevice may feature a large display 1803 included within a case 1804 thatfeatures very few user interface devices in order to maximize thedisplay area. The computing device 1800 may be controlled by a processor1801 coupled to memory 1802. Such a tablet computing device 1800 mayinclude a touchscreen display 1803 as the primary user input device. Theuse of force sensing sensors, such as piezo sensors 1816 about theperiphery of the front side, as well as the sides, top, bottom and backportions of the case 1804 may enable the tablet 1800 to be controlled byuser input gestures similar to those described above using the variousaspect methods. Additionally, the tablet 1800 may include user interfacebuttons 1806 and a trackball input 1807 coupled to a processor 1801.

The various aspects enable user input gestures on a tablet computerdevice 1800 that can be accomplished while both hands are holding thedevice. For example, user input gestures can be accomplished by applyingsqueezing, twisting, bending or pressure forces to the sides and back ofthe device case using both hands.

The processor 1301, 1801 used in computing devices implementing thevarious aspects may be any programmable microprocessor, microcomputer ormultiple processor chip or chips that can be configured by softwareinstructions (applications) to perform a variety of functions, includingthe functions of the various aspects described herein. In some mobiledevices, multiple processors 1301, 1801 may be provided, such as oneprocessor dedicated to wireless communication functions and oneprocessor dedicated to running other applications. Typically, softwareapplications may be stored in the internal memory 1302, 1802 before theyare accessed and loaded into the processor 1301, 1801. In some mobiledevices, the processor 1301 may include internal memory sufficient tostore the application software instructions. As part of the processor,such a secure memory may not be replaced or accessed without damaging orreplacing the processor. In some mobile devices, additional memory chips(e.g., a Secure Data (SD) card) may be plugged into the device 1300,1800 and coupled to the processor 1301, 1801. In many mobile devices,the internal memory 1302, 1802 may be a volatile or nonvolatile memory,such as flash memory, or a mixture of both. For the purposes of thisdescription, a general reference to memory refers to all memoryaccessible by the processor 1301, 1801, including internal memory 1302,1802, removable memory plugged into the mobile device, and memory withinthe processor 1301, 1801 itself, including the secure memory.

The foregoing method descriptions and the process flow diagrams areprovided merely as illustrative examples and are not intended to requireor imply that the processes of the various aspects must be performed inthe order presented. As will be appreciated by one of skill in the artthe order of blocks and processes in the foregoing aspects may beperformed in any order. Words such as “thereafter,” “then,” “next,” etc.are not intended to limit the order of the processes; these words aresimply used to guide the reader through the description of the methods.Further, any reference to claim elements in the singular, for example,using the articles “a,” “an” or “the” is not to be construed as limitingthe element to the singular.

The various illustrative logical blocks, modules, circuits, andalgorithm processes described in connection with the aspects disclosedherein may be implemented as electronic hardware, computer software, orcombinations of both. To clearly illustrate this interchangeability ofhardware and software, various illustrative components, blocks, modules,circuits, and algorithms have been described above generally in terms oftheir functionality. Whether such functionality is implemented ashardware or software depends upon the particular application and designconstraints imposed on the overall system. Skilled artisans mayimplement the described functionality in varying ways for eachparticular application, but such implementation decisions should not beinterpreted as causing a departure from the scope of the presentinvention.

The hardware used to implement the various illustrative logics, logicalblocks, modules, and circuits described in connection with the aspectsdisclosed herein may be implemented or performed with a general purposeprocessor, a digital signal processor (DSP), an application specificintegrated circuit (ASIC), a field programmable gate array (FPGA) orother programmable logic device, discrete gate or transistor logic,discrete hardware components, or any combination thereof designed toperform the functions described herein. A general-purpose processor maybe a microprocessor, but, in the alternative, the processor may be anyconventional processor, controller, microcontroller, or state machine. Aprocessor may also be implemented as a combination of computing devices,e.g., a combination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. Alternatively, some processes ormethods may be performed by circuitry that is specific to a givenfunction.

In one or more exemplary aspects, the functions described may beimplemented in hardware, software, firmware, or any combination thereof.If implemented in software, the functions may be stored on ortransmitted over as one or more instructions or code on acomputer-readable medium. The processes of a method or algorithmdisclosed herein may be embodied in a processor-executable softwaremodule executed which may reside on a computer-readable medium.Computer-readable media includes both computer storage media andcommunication media including any medium that facilitates transfer of acomputer program from one place to another. A storage media may be anyavailable media that may be accessed by a computer. By way of example,and not limitation, such computer-readable media may comprise RAM, ROM,EEPROM, CD-ROM or other optical disk storage, magnetic disk storage orother magnetic storage devices, or any other medium that may be used tocarry or store desired program code in the form of instructions or datastructures and that may be accessed by a computer. Also, any connectionis properly termed a computer-readable medium. For example, if thesoftware is transmitted from a website, server, or other remote sourceusing a coaxial cable, fiber optic cable, twisted pair, digitalsubscriber line (DSL), or wireless technologies such as infrared, radio,and microwave, then the coaxial cable, fiber optic cable, twisted pair,DSL, or wireless technologies such as infrared, radio, and microwave areincluded in the definition of medium. Disk and disc, as used herein,includes compact disc (CD), laser disc, optical disc, digital versatiledisc (DVD), floppy disk, and blu-ray disc where disks usually reproducedata magnetically, while discs reproduce data optically with lasers.Combinations of the above should also be included within the scope ofcomputer-readable media. Additionally, the operations of a method oralgorithm may reside as one or any combination or set of codes and/orinstructions stored on a machine readable medium and/orcomputer-readable medium, which may be incorporated into a computerprogram product.

The foregoing description of the various aspects is provided to enableany person skilled in the art to make or use the present invention.Various modifications to these aspects will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other aspects without departing from the scope of theinvention. Thus, the present invention is not intended to be limited tothe aspects shown herein, and instead the claims should be accorded thewidest scope consistent with the principles and novel features disclosedherein.

1. A method for capturing user input on a computing device, comprising:receiving an electrical signal from a force sensitive sensor positionedon a case of the computing device; comparing the received electricalsignal to a reference signal template; determining whether the receivedelectrical signal matches the reference signal template; identifying afunctionality associated with a matched reference signal template; andimplementing the identified functionality on the computing device. 2.The method of claim 1, wherein implementing the identified functionalityon the computing device comprises: generating a user input eventnotification; and forwarding the user input event notification to anapplication executing on the computing device.
 3. The method of claim 1,wherein the force sensitive sensor comprises a piezoelectric sensor. 4.The method of claim 1, further comprising: filtering the receivedelectrical signal for electromagnetic interference; converting thereceived electrical signal from analog to digital format; normalizingthe received electrical signal in at least one of frequency andamplitude; and identifying a portion of the received electrical signalto compare with the reference signal template.
 5. The method of claim 1,further comprising converting the received electrical signal from theforce sensitive sensor into frequency domain data, wherein comparing thereceived electrical signal with a reference signal template comprisescomparing the sensor signal frequency domain data to a referencefrequency domain template.
 6. The method of claim 1, wherein comparingthe received electrical signal with a reference signal template, anddetermining whether the received electrical signal matches the referencesignal template comprises: calculating cross-correlation values of aportion of the received electrical signal and each of a plurality ofreference templates; determining a best correlation value; anddetermining whether the correlation value is above a threshold value. 7.The method of claim 1, wherein comparing the received electrical signalwith a reference signal template, and determining whether the receivedelectrical signal matches the reference signal template comprises:converting at least a portion of the received electrical signal into afrequency domain signal portion; calculating cross-correlation values ofthe frequency domain portion and each of a plurality of referencetemplates; determining a best correlation value; and determining whetherthe correlation value is above a threshold value.
 8. The method of claim1, wherein comparing the received electrical signal with a referencesignal template, and determining whether the received electrical signalmatches the reference signal template comprises: performing a hiddenMarkov model test on the received electrical signal from the forcesensitive sensor.
 9. The method of claim 1, wherein comparing thereceived electrical signal with a reference signal template, anddetermining whether the received electrical signal matches the referencesignal template comprises: calculating one or more signal vectorscharacterizing the received electrical signal from the force sensitivesensor; accessing a reference vector characterizing a reference signal;calculating a cosine value based on the received signal vector andaccessed reference vector; and determining whether the calculated cosinevalue is less than a threshold value.
 10. The method of claim 1, furthercomprising receiving a sensor input from another sensor, whereinidentifying a functionality associated with a matched reference signaltemplate comprises identifying a functionality associated both with thematched reference signal template and the sensor input received from theother sensor.
 11. The method of claim 1, further comprising detecting achange in temperature based on the received electrical signal from theforce sensitive sensor.
 12. The method of claim 1, further comprising:receiving a user identified functionality to be associated with the userinput gesture; prompting the user to perform a user input gesture;receiving electrical signals from the force sensitive sensor; processingthe received electrical signals from the force sensitive sensor in orderto generate a reference signal template; and storing the referencesignal template in memory in conjunction with the received useridentified functionality.
 13. The method of claim 1, wherein thecomputing device is a mobile device.
 14. The method of claim 1, whereinthe computing device is a tablet computing device.
 15. The method ofclaim 1, further comprising determining when a signal from a forcesensor ceases, wherein implementing the identified functionality on thecomputing device is initiated when the signal from the force sensorceases.
 16. The method of claim 1, further comprising determining when alow battery power condition exists, wherein implementing the identifiedfunctionality on the computing device comprises initiating a telephonecall in a minimum power state.
 17. A computing device, comprising: acase; a processor positioned within the case; a memory coupled to theprocessor, the memory storing a reference signal template; and a forcesensitive sensor positioned on the case and coupled to the processor,wherein the processor is configured with processor-executableinstructions to perform operations comprising: receiving an electricalsignal from the force sensitive sensor; comparing the receivedelectrical signal to the reference signal template; determining whetherthe received electrical signal matches the reference signal template;identifying a functionality associated with a matched reference signaltemplate; and implementing the identified functionality on the computingdevice.
 18. The computing device of claim 17, wherein the processor isconfigured with processor-executable instructions such that implementingthe identified functionality on the computing device comprises:generating a user input event notification; and forwarding the userinput event notification to an application executing on the processor.19. The computing device of claim 17, wherein the force sensitive sensorcomprises a piezoelectric sensor.
 20. The computing device of claim 17,wherein the processor is configured with processor-executableinstructions to perform operations further comprising: filtering thereceived electrical signal for electromagnetic interference; convertingthe received electrical signal from analog to digital format;normalizing the received electrical signal in at least one of frequencyand amplitude; and identifying a portion of the received electricalsignal to compare with the reference signal template.
 21. The computingdevice of claim 17, wherein the processor is configured withprocessor-executable instructions to perform operations furthercomprising converting the received electrical signal from the forcesensitive sensor into frequency domain data, wherein the referencesignal template is a frequency domain template, and wherein theprocessor is configured with processor-executable instructions such thatcomparing the received electrical signal with the reference signaltemplate comprises comparing the sensor signal frequency domain data tothe reference frequency domain template.
 22. The computing device ofclaim 17, wherein the memory has stored therein a plurality of referencetemplates, and wherein the processor is configured withprocessor-executable instructions such that comparing the receivedelectrical signal with the reference signal template, and determiningwhether the received electrical signal matches the reference signaltemplate comprises: calculating cross-correlation values of a portion ofthe received electrical signal and each of the plurality of referencetemplates; determining a best correlation value; and determining whetherthe correlation value is above a threshold value.
 23. The computingdevice of claim 17, wherein the processor is configured withprocessor-executable instructions such that comparing the receivedelectrical signal with a reference signal template, and determiningwhether the received electrical signal matches the reference signaltemplate comprises: converting at least a portion of the receivedelectrical signal into a frequency domain signal portion; calculatingcross-correlation values of the frequency domain portion and each of aplurality of reference templates; determining a best correlation value;and determining whether the correlation value is above a thresholdvalue.
 24. The computing device of claim 17, wherein the processor isconfigured with processor-executable instructions such that comparingthe received electrical signal with the reference signal template, anddetermining whether the received electrical signal matches the referencesignal template comprises: performing a hidden Markov model test on thereceived electrical signal from the force sensitive sensor.
 25. Thecomputing device of claim 17, wherein the reference signal templatestored in the memory comprises frequency domain template, and whereinthe processor is configured with processor-executable instructions suchthat comparing the received electrical signal with the reference signaltemplate, and determining whether the received electrical signal matchesthe reference signal template comprises: calculating one or more signalvectors characterizing the received electrical signal from the forcesensitive sensor; accessing the reference vector stored in the memory;calculating a cosine value based on the received signal vector and theaccessed reference vector; and determining whether the calculated cosinevalue is less than a threshold value.
 26. The computing device of claim17, further comprising another sensor coupled to the processor, whereinthe processor is configured with processor-executable instructions toperform operations further comprising receiving a sensor input from theother sensor, wherein identifying a functionality associated with amatched reference signal template comprises identifying a functionalityassociated both with the matched reference signal template and thesensor input received from the other sensor.
 27. The computing device ofclaim 17, wherein the processor is configured with processor-executableinstructions to perform operations further comprising detecting a changein temperature based on the received electrical signal from the forcesensitive sensor.
 28. The computing device of claim 17, wherein theprocessor is configured with processor-executable instructions toperform operations further comprising: receiving a user identifiedfunctionality to be associated with the user input gesture; promptingthe user to perform a user input gesture; receiving electrical signalsfrom the force sensitive sensor; processing the received electricalsignals from the force sensitive sensor in order to generate a referencesignal template; and storing the generated reference signal template inthe memory in conjunction with the received user identifiedfunctionality.
 29. The computing device of claim 17, wherein thecomputing device is a mobile device.
 30. The computing device of claim17, wherein the computing device is a tablet computing device.
 31. Thecomputing device of claim 17, wherein the processor is configured withprocessor-executable instructions to perform operations furthercomprising determining when a signal from a force sensor ceases, whereinimplementing the identified functionality on the computing device isinitiated when the signal from the force sensor ceases.
 32. Thecomputing device of claim 17, wherein the processor is configured withprocessor-executable instructions to perform operations furthercomprising determining when a low battery power condition exists,wherein implementing the identified functionality on the computingdevice comprises initiating a telephone call in a minimum power state.33. The computing device of claim 17, wherein the force sensitive sensoris positioned on an external surface of the case.
 34. The computingdevice of claim 17, wherein the force sensitive sensor is positioned onan internal surface of the case.
 35. The computing device of claim 17,comprising a plurality of force sensitive sensors positioned on the caseand coupled to the processor.
 36. The computing device of claim 35,wherein at least a portion of the plurality of force sensitive sensorsare positioned on a back surface of the case.
 37. The computing deviceof claim 35, wherein at least a portion of the plurality of forcesensitive sensors are positioned on each side of the case.
 38. Thecomputing device of claim 35, wherein a portion of the plurality offorce sensitive sensors are positioned on each side of the case and aportion of the plurality of force sensitive sensors are positioned oneach side of the case.
 39. A computing device, comprising: force sensingmeans for sensing a force applied to a case of the computing device;means for receiving an electrical signal from the force sensing means;means for comparing the received electrical signal to a reference signaltemplate; means for determining whether the received electrical signalmatches the reference signal template; means for identifying afunctionality associated with a matched reference signal template; andmeans for implementing the identified functionality on the computingdevice.
 40. The computing device of claim 39, wherein means forimplementing the identified functionality on the computing devicecomprises: means for generating a user input event notification; andmeans for forwarding the user input event notification to an applicationexecuting on the computing device.
 41. The computing device of claim 39,wherein the force sensing means comprises a piezoelectric sensor. 42.The computing device of claim 39, further comprising: means forfiltering the received electrical signal for electromagneticinterference; means for converting the received electrical signal fromanalog to digital format; means for normalizing the received electricalsignal in at least one of frequency and amplitude; and means foridentifying a portion of the received electrical signal to compare withthe reference signal template.
 43. The computing device of claim 39,further comprising means for converting the received electrical signalfrom the force sensing means into frequency domain data, wherein meansfor comparing the received electrical signal with a reference signaltemplate comprises means for comparing the sensor signal frequencydomain data to a reference frequency domain template.
 44. The computingdevice of claim 39, wherein means for comparing the received electricalsignal with a reference signal template, and means for determiningwhether the received electrical signal matches the reference signaltemplate comprises: means for calculating cross-correlation values of aportion of the received electrical signal and each of a plurality ofreference templates; means for determining a best correlation value; andmeans for determining whether the correlation value is above a thresholdvalue.
 45. The computing device of claim 39, wherein means for comparingthe received electrical signal with a reference signal template, andmeans for determining whether the received electrical signal matches thereference signal template comprises: means for converting at least aportion of the received electrical signal into a frequency domain signalportion; means for calculating cross-correlation values of the frequencydomain portion and each of a plurality of reference templates; means fordetermining a best correlation value; and means for determining whetherthe correlation value is above a threshold value.
 46. The computingdevice of claim 39, wherein means for comparing the received electricalsignal with a reference signal template, and means for determiningwhether the received electrical signal matches the reference signaltemplate comprises: means for performing a hidden Markov model test onthe received electrical signal from the force sensing means.
 47. Thecomputing device of claim 39, wherein means for comparing the receivedelectrical signal with a reference signal template, and means fordetermining whether the received electrical signal matches the referencesignal template comprises: means for calculating one or more signalvectors characterizing the received electrical signal from the forcesensing means; means for accessing a reference vector characterizing areference signal; means for calculating a cosine value based on thereceived signal vector and accessed reference vector; and means fordetermining whether the calculated cosine value is less than a thresholdvalue.
 48. The computing device of claim 39, further comprising meansfor receiving a sensor input from another sensor, wherein means foridentifying a functionality associated with a matched reference signaltemplate comprises means for identifying a functionality associated bothwith the matched reference signal template and the sensor input receivedfrom the other sensor.
 49. The computing device of claim 39, furthercomprising means for detecting a change in temperature based on thereceived electrical signal from the force sensing means.
 50. Thecomputing device of claim 39, further comprising: means for receiving auser identified functionality to be associated with the user inputgesture; means for prompting the user to perform a user input gesture;means for receiving electrical signals from the force sensing means;means for processing the received electrical signals from the forcesensing means in order to generate a reference signal template; andmeans for storing the reference signal template in memory in conjunctionwith the received user identified functionality.
 51. The computingdevice of claim 39, wherein the computing device is a mobile device. 52.The computing device of claim 39, wherein the computing device is atablet computing device.
 53. The computing device of claim 39, furthercomprising means for determining when a signal from a force sensorceases, wherein means for implementing the identified functionality onthe computing device comprises means for initiated the identifiedfunctionality when the signal from the force sensor ceases.
 54. Thecomputing device of claim 39, further comprising means for determiningwhen a low battery power condition exists, wherein means forimplementing the identified functionality on the computing devicecomprises means for initiating a telephone call in a minimum powerstate.
 55. The computing device of claim 39, wherein the force sensingmeans is positioned on an external surface of the case.
 56. Thecomputing device of claim 39, wherein the force sensing means ispositioned on an internal surface of the case.
 57. The computing deviceof claim 39, wherein the force sensing means comprises a plurality offorce sensitive sensors.
 58. The computing device of claim 57, whereinat least a portion of the plurality of force sensitive sensors arepositioned on a back surface of the case.
 59. The computing device ofclaim 57, wherein at least a portion of the plurality of force sensitivesensors are positioned on each side of the case.
 60. The computingdevice of claim 57, wherein a portion of the plurality of forcesensitive sensors are positioned on each side of the case and a portionof the plurality of force sensitive sensors are positioned on each sideof the case.
 61. A processor-readable storage medium having storedthereon processor-executable instructions configured to cause aprocessor to perform operations comprising: receiving an electricalsignal from a force sensitive sensor; comparing the received electricalsignal to a reference signal template; determining whether the receivedelectrical signal matches the reference signal template; identifying afunctionality associated with a matched reference signal template; andimplementing the identified functionality.
 62. The processor-readablestorage medium of claim 61, wherein the stored processor-executableinstructions are configured such that implementing the identifiedfunctionality on the computing device comprises: generating a user inputevent notification; and forwarding the user input event notification toan application executing on the processor.
 63. The processor-readablestorage medium of claim 61, wherein the stored processor-executableinstructions are configured to receive electrical signals from apiezoelectric sensor.
 64. The processor-readable storage medium of claim61, wherein the stored processor-executable instructions are toconfigured cause a processor to perform operations further comprising:filtering the received electrical signal for electromagneticinterference; converting the received electrical signal from analog todigital format; normalizing the received electrical signal in at leastone of frequency and amplitude; and identifying a portion of thereceived electrical signal to compare with the reference signaltemplate.
 65. The processor-readable storage medium of claim 61, whereinthe stored processor-executable instructions are configured to cause aprocessor to perform operations further comprising converting thereceived electrical signal from the force sensitive sensor intofrequency domain data, wherein the reference signal template is afrequency domain template, and wherein the processor is configured withprocessor-executable instructions such that comparing the receivedelectrical signal with the reference signal template comprises comparingthe sensor signal frequency domain data to the reference frequencydomain template.
 66. The processor-readable storage medium of claim 61,wherein the stored processor-executable instructions are configured suchthat comparing the received electrical signal with the reference signaltemplate, and determining whether the received electrical signal matchesthe reference signal template comprises: calculating cross-correlationvalues of a portion of the received electrical signal and each of aplurality of reference templates; determining a best correlation value;and determining whether the correlation value is above a thresholdvalue.
 67. The processor-readable storage medium of claim 61, whereinthe stored processor-executable instructions are configured such thatcomparing the received electrical signal with a reference signaltemplate, and determining whether the received electrical signal matchesthe reference signal template comprises: converting at least a portionof the received electrical signal into a frequency domain signalportion; calculating cross-correlation values of the frequency domainportion and each of a plurality of reference templates; determining abest correlation value; and determining whether the correlation value isabove a threshold value.
 68. The processor-readable storage medium ofclaim 61, wherein the stored processor-executable instructions areconfigured such that comparing the received electrical signal with thereference signal template, and determining whether the receivedelectrical signal matches the reference signal template comprises:performing a hidden Markov model test on the received electrical signalfrom the force sensitive sensor.
 69. The processor-readable storagemedium of claim 61, wherein the stored processor-executable instructionsare configured such that comparing the received electrical signal withthe reference signal template, and determining whether the receivedelectrical signal matches the reference signal template comprises:calculating one or more signal vectors characterizing the receivedelectrical signal from the force sensitive sensor; accessing a referencevector characterizing the reference signal; calculating a cosine valuebased on the received signal vector and the accessed reference vector;and determining whether the calculated cosine value is less than athreshold value.
 70. The processor-readable storage medium of claim 61,wherein the stored processor-executable instructions are configured tocause a processor to perform operations further comprising receiving asensor input from another sensor, wherein the storedprocessor-executable instructions are configured such that identifying afunctionality associated with a matched reference signal templatecomprises identifying a functionality associated both with the matchedreference signal template and the sensor input received from the othersensor.
 71. The processor-readable storage medium of claim 61, whereinthe stored processor-executable instructions are configured to cause aprocessor to perform operations further comprising detecting a change intemperature based on the received electrical signal from the forcesensitive sensor.
 72. The processor-readable storage medium of claim 61,wherein the stored processor-executable instructions are configured tocause a processor to perform operations further comprising: receiving auser identified functionality to be associated with the user inputgesture; prompting the user to perform a user input gesture; receivingelectrical signals from the force sensitive sensor; processing thereceived electrical signals from the force sensitive sensor in order togenerate a reference signal template; and storing the generatedreference signal template in the memory in conjunction with the receiveduser identified functionality.
 73. The processor-readable storage mediumof claim 61, wherein the stored processor-executable instructions areconfigured to be performed by a processor of a mobile device.
 74. Theprocessor-readable storage medium of claim 61, wherein the storedprocessor-executable instructions are configured to be performed by aprocessor of a tablet computing device.
 75. The processor-readablestorage medium of claim 61, wherein the stored processor-executableinstructions are configured to cause a processor to perform operationsfurther comprising determining when a signal from a force sensor ceases,wherein implementing the identified functionality on the computingdevice is initiated when the signal from the force sensor ceases. 76.The processor-readable storage medium of claim 61, wherein the storedprocessor-executable instructions are configured to cause a processor toperform operations further comprising determining when a low batterypower condition exists, wherein implementing the identifiedfunctionality on the computing device comprises initiating a telephonecall in a minimum power state.